安卓7.0:应用本地库存在问题检测

4
我们刚将我们的 Nexus 96 升级到了 Android N,现在在使用我们的应用程序时会弹出以下内容的弹窗: enter image description here 请给出一些建议。

你正在使用哪个版本的sqlcipher? - pRaNaY
检查我的更新答案。 - pRaNaY
2个回答

4

检查报告的相同问题:https://github.com/litehelpers/Cordova-sqlcipher-adapter/issues/41

现在已经解决。

供参考:

sqlcipher/android-database-sqlcipher#216

您可以在以下链接中检查SQLCipher for Android Release - Android N支持:

https://discuss.zetetic.net/t/sqlcipher-for-android-release-android-n-support/1465

编辑:

您还可以查看NDK Apps Linking to Platform Libraries,了解私有库的使用情况。

请检查“更新您的应用程序”部分,其中提供了修复此类错误的步骤。


0

你可能正在使用直接访问私有API的本地库。以下是问题的描述。

来自Android开发者博客https://android-developers.googleblog.com/2016/06/android-changes-for-ndk-developers.html

私有 API(自 API 24 强制执行)

本地库必须仅使用公共 API http://developer.android.com/ndk/guides/stable_apis.html?utm_campaign=android_discussion_ndkchanges_062716&utm_source=anddev&utm_medium=blog,并且不得链接非 NDK 平台库。从 API 24 开始,此规则得到强制执行,应用程序将无法加载非 NDK 平台库。该规则由动态链接器执行,因此无论代码如何尝试加载它们(System.loadLibrary(...)、DT_NEEDED 条目和对 dlopen(...) 的直接调用),非公共库都是不可访问的。

(...)

潜在问题:从 API 24 开始,动态链接器将不会加载私有库,防止应用程序加载。

解决方案:重写本地代码,仅依赖于公共 API。作为短期解决方法,可以将没有复杂依赖关系的平台库(libcutils.so)复制到项目中。作为长期解决方案,相关代码必须复制到项目树中。不应从本地代码访问 SSL/Media/JNI 内部/绑定器 API。必要时,本地代码应调用适当的公共 Java API 方法。

完整的公共库列表可在 NDK 中找到,位于 platforms/android-API/usr/lib 下。

正如其他答案所指出的那样,似乎这个API 24的问题已经得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接