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.
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 (unlikelibtango_support_api.so
and other libraries that are packed into tango_support_java_lib.aar. – Satan