java - Tango API 链接私有(private)原生库 API24+

标签 java android gradle android-ndk google-project-tango

这个问题有什么解决办法吗?

Running the Tango API displays a warning dialog on the library

我们的团队有同样的问题。提到的指南并没有真正帮助。据我所知,不是“libtango_client_api.so”是私有(private)的:

"libbinder.so"
"libcutils.so"
"libutils.so"
"libgui.so"
"libandroid_runtime.so"
"libui.so"

是我们仍然可以在 api 版本 24 中使用的私有(private)平台库,但在 24+ 中将无法再访问它们。该警告也出现在最新的 c 示例中。必须有一个解决方案,因为存在没有像这样的任何警告的应用程序 (Rtabmap)。

如有任何帮助,我将不胜感激。

最佳答案

我假设您重复了这个问题,因为您还无法发表评论。我有同样的问题,所以我也无法对该线程做出回应,但我可以给你一个看起来很糟糕的解决方法,但我没有任何其他解决方案。

对于每个丢失的文件,您可以按照开发者网站的建议包含预建库:

...you should update your app to either include its own copy of those libraries or only use the public NDK APIs.

我在 make 文件中添加了以下内容,并将文件的副本放在相关文件夹中:

include $(CLEAR_VARS)
LOCAL_MODULE          := binder
LOCAL_SRC_FILES := ../jni/lib/$(TARGET_ARCH_ABI)/libbinder.so 
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE          := cutils
LOCAL_SRC_FILES := ../jni/lib/$(TARGET_ARCH_ABI)/libcutils.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE          := utils
LOCAL_SRC_FILES := ../jni/lib/$(TARGET_ARCH_ABI)/libutils.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE          := android_runtime
LOCAL_SRC_FILES := ../jni/lib/$(TARGET_ARCH_ABI)/libandroid_runtime.so
include $(PREBUILT_SHARED_LIBRARY)

这似乎不是执行此操作的正确方法,我怀疑会有很多依赖项。 GDB 日志显示了我无法加载的符号,我将在下面包含这些符号。我确实开始一个接一个地查看下一个 logcat 提示的是哪个 logcat,希望它不需要全部,但这可能是徒劳的。我不敢相信我必须添加以下所有符号:

/system/lib64/libcutils.so
/system/lib64/libutils.so
/system/lib64/liblog.so
/system/lib64/libbinder.so
/system/lib64/libnativeloader.so
/system/lib64/libandroid_runtime.so
/system/lib64/libwilhelm.so
/system/lib64/libc++.so
/system/lib64/libm.so
/system/lib64/libbacktrace.so
/system/lib64/libnativehelper.so
/system/lib64/libmemtrack.so
/system/lib64/libandroidfw.so
/system/lib64/libexpat.so
/system/lib64/libnetutils.so
/system/lib64/libui.so
/system/lib64/libgui.so
/system/lib64/libinput.so
/system/lib64/libinputflinger.so
/system/lib64/libcamera_client.so
/system/lib64/libcamera_metadata.so
/system/lib64/libskia.so
/system/lib64/libsqlite.so
/system/lib64/libEGL.so
/system/lib64/libGLESv1_CM.so
/system/lib64/libGLESv2.so
/system/lib64/libvulkan.so
/system/lib64/libETC1.so
/system/lib64/libhardware.so
/system/lib64/libhardware_legacy.so
/system/lib64/libselinux.so
/system/lib64/libsonivox.so
/system/lib64/libcrypto.so
/system/lib64/libssl.so
/system/lib64/libicuuc.so
/system/lib64/libicui18n.so
/system/lib64/libmedia.so
/system/lib64/libjpeg.so
/system/lib64/libusbhost.so
/system/lib64/libharfbuzz_ng.so
/system/lib64/libz.so
/system/lib64/libaudioutils.so
/system/lib64/libpdfium.so
/system/lib64/libimg_utils.so
/system/lib64/libnetd_client.so
/system/lib64/libradio.so
/system/lib64/libsoundtrigger.so
/system/lib64/libminikin.so
/system/lib64/libprocessgroup.so
/system/lib64/libnativebridge.so
/system/lib64/libradio_metadata.so
/system/lib64/libmemunreachable.so
/system/lib64/libhwui.so
/system/lib64/libregionalization.so
/system/lib64/libstagefright.so
/system/lib64/libstagefright_foundation.so
/system/lib64/libeffects.so
/system/lib64/libstagefright_http_support.so
/system/lib64/libbase.so
/system/lib64/libunwind.so
/system/lib64/libstdc++.so
/system/lib64/libsync.so
/system/lib64/libpng.so
/system/lib64/libft2.so
/system/lib64/libdng_sdk.so
/system/lib64/libpiex.so
/system/lib64/libwpa_client.so
/system/lib64/libpcre.so
/system/lib64/libpackagelistparser.so
/system/lib64/libnbaio.so
/system/lib64/libspeexresampler.so
/system/lib64/libprotobuf-cpp-lite.so
/system/lib64/libRS.so
/system/lib64/libRScpp.so
/system/lib64/libdrmframework.so
/system/lib64/libmediautils.so
/system/lib64/libopus.so
/system/lib64/libstagefright_omx.so
/system/lib64/libstagefright_yuv.so
/system/lib64/libvorbisidec.so
/system/lib64/libpowermanager.so
/system/lib64/libstagefright_enc_common.so
/system/lib64/libstagefright_avc_common.so
/system/lib64/liblzma.so
/system/lib64/libbinary_parse.so
/system/lib64/libimage_type_recognition.so
/system/lib64/libtiff_directory.so
/system/lib64/libRS_internal.so
/system/lib64/libbcinfo.so
/system/lib64/libLLVM.so
/system/vendor/lib64/libavenhancements.so
/system/lib64/libstagefright_httplive.so
/system/lib64/libmediaplayerservice.so
/system/lib64/libstagefright_wfd.so
/system/vendor/lib64/libExtendedExtractor.so
/system/lib64/libdashplayer.so
/system/lib64/libart.so
/system/lib64/libsigchain.so
/system/lib64/liblz4.so
/system/framework/arm64/boot.oat
/system/framework/arm64/boot-core-libart.oat
/system/framework/arm64/boot-conscrypt.oat
/system/framework/arm64/boot-okhttp.oat
/system/framework/arm64/boot-core-junit.oat
/system/framework/arm64/boot-bouncycastle.oat
/system/framework/arm64/boot-ext.oat
/system/framework/arm64/boot-framework.oat
/system/framework/arm64/boot-telephony-common.oat
/system/framework/arm64/boot-voip-common.oat
/system/framework/arm64/boot-ims-common.oat
/system/framework/arm64/boot-apache-xml.oat
/system/framework/arm64/boot-org.apache.http.legacy.boot.oat
/system/framework/arm64/boot-tcmiface.oat
/system/framework/arm64/boot-telephony-ext.oat
/system/framework/arm64/boot-WfdCommon.oat
/system/framework/arm64/boot-oem-services.oat
/system/framework/arm64/boot-qcom.fmradio.oat
/system/framework/arm64/boot-qcmediaplayer.oat
/system/lib64/libandroid.so
/system/lib64/libcamera2ndk.so
/system/lib64/libGLESv3.so
/system/lib64/libjnigraphics.so
/system/lib64/libmediandk.so
/system/lib64/libmediadrm.so
/system/lib64/libOpenMAXAL.so
/system/lib64/libOpenSLES.so
/system/lib64/libwebviewchromium_plat_support.so
/system/vendor/lib64/libOpenCL.so
/system/vendor/lib64/libgsl.so
/system/vendor/lib64/libCB.so
/system/vendor/lib64/libqti_performance.so
/system/vendor/lib64/libqti-perfd-client.so
/system/vendor/lib64/libtango_hal.so
/system/vendor/lib64/libLiftParser.so
/system/vendor/lib64/libadsprpc.so
/system/vendor/lib64/libtango_hardware.so
/system/vendor/lib64/libtango_surface_texture.so
/system/vendor/lib64/lib-ims-rcscmjni.so
/system/vendor/lib64/lib-imsrcscmclient.so
/system/vendor/lib64/lib-imsrcscm.so
/system/vendor/lib64/lib-imsdpl.so
/system/vendor/lib64/lib-imsqimf.so
/system/vendor/lib64/libdiag.so
/system/vendor/lib64/libqmiservices.so
/system/vendor/lib64/libdsi_netctrl.so
/system/vendor/lib64/libtime_genoff.so
/system/vendor/lib64/lib-imsxml.so
/system/vendor/lib64/libidl.so
/system/vendor/lib64/libqmi.so
/system/vendor/lib64/libqdi.so
/system/vendor/lib64/libnetmgr.so
/system/vendor/lib64/libdsutils.so
/system/vendor/lib64/libconfigdb.so
/system/vendor/lib64/libqmi_cci.so
/system/vendor/lib64/libqmi_common_so.so
/system/vendor/lib64/libqmi_client_qmux.so
/system/vendor/lib64/libqmi_client_helper.so
/system/vendor/lib64/libmdmdetect.so
/system/vendor/lib64/libxml.so
/system/vendor/lib64/libqmi_encdec.so
/system/vendor/lib64/libsmemlog.so
/system/vendor/lib64/lib-imsrcscmservice.so
/system/vendor/lib64/libcxsparse.so
/system/lib64/libart-compiler.so
/system/lib64/libvixl.so
/system/lib64/libjavacore.so
/system/lib64/libopenjdk.so
/system/lib64/libopenjdkjvm.so
/system/lib64/hw/memtrack.msm8996.so
/system/vendor/lib64/libqti-at.so
/system/vendor/lib64/libqti-gt.so
/system/lib64/libxml2.so
/system/lib64/libmedia_jni.so
/system/lib64/libmtp.so
/system/lib64/libexif.so
/system/lib64/libstagefright_amrnb_common.so
/system/lib64/libextmedia_jni.so
/system/lib64/libjavacrypto.so
/system/lib64/libkeystore-engine.so
/system/lib64/libkeystore_binder.so
/system/lib64/libkeymaster_messages.so
/system/lib64/libsoftkeymasterdevice.so
/system/lib64/libkeymaster1.so
/system/vendor/lib64/egl/libEGL_adreno.so
/system/vendor/lib64/libadreno_utils.so
/system/vendor/lib64/egl/libGLESv2_adreno.so
/system/vendor/lib64/libllvm-glnext.so
/system/vendor/lib64/egl/libGLESv1_CM_adreno.so
/system/vendor/lib64/egl/eglSubDriverAndroid.so
/system/vendor/lib64/hw/gralloc.msm8996.so
/system/lib64/libmemalloc.so
/system/lib64/libqdMetaData.so
/system/lib64/libqdutils.so
/system/lib64/libqservice.so
/system/lib64/libcompiler_rt.so
/system/lib64/libwebviewchromium_loader.so
/data/app/com.sample.moreteapots-1/oat/arm64/base.odex
/system/framework/oat/arm64/QPerformance.odex

我会关注您提到的我投票赞成的其他话题,并希望有人能给我们一个明智的解决方案。 API 24 似乎不太可能只是把 Tango 开发人员搞砸了。

我从日志中以编程方式生成了 make 文件代码,我的程序已编译并运行。 Tango 配置返回 null 但我认为这是一个新问题。这是 prebuilt includes .只需将文件添加到源路径即可。

关于java - Tango API 链接私有(private)原生库 API24+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112418/

相关文章:

android - Google map 使用哪种算法来计算两点之间的方向?

java - 如何使用 Gradle 创建独立的自执行 jar 文件?

java - 使用 FQL android 获取所有 Facebook 相册 ID

android - View 的 getWidth() 和 getHeight() 返回 0

android - 在 Jetpack Compose Android 中禁用文本字段上的键盘?

android - 将 Android Studio 3.6 和 Gradle 更新到 3.5.0 后无法运行项目

intellij-idea - 如何在 IDEA 中从 Gradle 设置 checkstyle 配置

gradle - 有没有办法确定 gradle 依赖项(如在 Eclipse IDE 中)在类路径(编译和运行时)中的排序顺序?

java - JAVAFX 骰子的最后值

java - 在 Android Studio 中导入 java.util.stream.Stream 时出错