Running the Tango API displays a warning dialog on the library
Asked Answered
L

1

6

I am developing AR application by Tango. The device is ZenfoneAR (Android 7.0 Nougat).

I improved the sample project and developed an application. However, when launching the application, the following warning message will be displayed.

Dialog Message

Detected problems with app native libraries(please consult log for detail):
libtango_client_api.so: unauthorized access to "libbinder.so"
libtango_client_api.so: unauthorized access to "libcutils.so"
libtango_client_api.so: unauthorized access to "libutils.so"
libtango_client_api.so: unauthorized access to "libgui.so"
libtango_client_api.so: unauthorized access to "libandroid_runtime.so"
libtango_client_api.so: unauthorized access to "libui.so"

logcat

W/linker: library "libbinder.so" ("/system/lib64/libbinder.so") needed or dlopened by "/data/data/com.google.tango/libfiles/default/libtango_client_api.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.
W/linker: library "libcutils.so" ("/system/lib64/libcutils.so") needed or dlopened by "/data/data/com.google.tango/libfiles/default/libtango_client_api.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.
W/linker: library "libutils.so" ("/system/lib64/libutils.so") needed or dlopened by "/data/data/com.google.tango/libfiles/default/libtango_client_api.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.
W/linker: library "libgui.so" ("/system/lib64/libgui.so") needed or dlopened by "/data/data/com.google.tango/libfiles/default/libtango_client_api.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.
W/linker: library "libandroid_runtime.so" ("/system/lib64/libandroid_runtime.so") needed or dlopened by "/data/data/com.google.tango/libfiles/default/libtango_client_api.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.
W/linker: library "libui.so" ("/system/lib64/libui.so") needed or dlopened by "/data/data/com.google.tango/libfiles/default/libtango_client_api.so" is not accessible for the namespace "classloader-namespace" - the access is temporarily granted as a workaround for http://b/26394120, note that the access will be removed in future releases of Android.
E/linker: library "libavenhancements.so" ("/system/vendor/lib64/libavenhancements.so") needed or dlopened by "/system/lib64/libmedia.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/<package name>-2/lib/arm64:/system/fake-libs64:/data/app/<package name>-2/base.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/<package name>"]

I think that it is related to "NDK Apps Linking to Platform Libraries" of the following site.

https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk

According to this, "libtango_client_api.so" is "private platform library"?

Or is there a mistake in my configuration file?

I do not know how to fix it, so I can not improve it. How can I improve my warning? please help me.

app/build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion '25.0.0'
    dataBinding {
        enabled = true
    }
    defaultConfig {
        applicationId "<package name>"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        lintOptions {
            abortOnError false
        }
    }
}


dependencies {
    apply from: '../version.gradle'
    compile "com.google.tango:sdk-base:${release_version}"
    compile "com.google.tango:support-base:${release_version}"
    compile "com.google.tango:support-reconstruction:${release_version}"
    compile 'org.rajawali3d:rajawali:1.1.668@aar'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'commons-io:commons-io:2.4'
    compile 'org.apache.commons:commons-lang3:3.4'
}

${release_version} = 1.54

Project/build.gradle

buildscript {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}


allprojects {
    repositories {
        mavenLocal()
        jcenter()
    }
}

app/src/main/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="<package name>"
    android:versionCode="0"
    android:versionName="0" >

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="23" />

     <uses-permission android:name="android.permission.CAMERA" />

    <application

       ...about application...>

        <uses-library
            android:name="com.projecttango.libtango_device2"
            android:required="true" />

        <activity

            ...about activity...>

            ...

        </activity>
    </application>
</manifest>

By the way, the configuration file is almost same as the Tango sample project.

Lexeme answered 21/7, 2017 at 8:40 Comment(1)
Where does libtango_client_api.so come from? This file is expected to be present in /system/lib (or maybe /system/lib64); you are not expected to put it into your APK (unlike libtango_support_api.so and other libraries that are packed into tango_support_java_lib.aar.Satan
M
0

Don't know why, but this error occurs only in debug mode not in release mode. So as a workaround run your application in release mode.

Museology answered 13/6, 2018 at 10:22 Comment(1)
Can you provide some more information about what you mean and why this is the solution. An example and explanationGrigg

© 2022 - 2024 — McMap. All rights reserved.