Lee*_*xon 51 java-native-interface android-ndk
您的Android JNI应用中出现上述错误?继续阅读......
在前面,我会说我已经用我自己的方式解决了这个问题,但是我觉得Android构建系统中的某些内容(可能是关于Eclipse)已经破了,我希望能够为其他人节省数小时的痛苦.也许其他人已经遇到过这个问题,可以评论对他们有用的东西.
有一段时间,我有一个Android项目,其中包含一些我使用NDK开发的JNI代码.然后,今天,我在java代码中改变了一些东西,然后poof,我再也无法加载我的JNI库了.它失败了,例如:
E/AndroidRuntime(999):java.lang.UnsatisfiedLinkError:无法加载mylibrary:findLibrary返回null
我用Google搜索并尝试了所有内容(重建,关闭和重新启动Eclipse等等)
什么最终解决了我的问题?在尝试另一次运行之前,我从设备上物理卸载了我的应用程序.而已.在那之后,它奏效了.什么对你有用?
Roy*_*Roy 15
如果您有LOCAL_MODULE"libXYZ"的本机项目,请确保将其加载为
System.loadLibrary("XYZ");
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 13
如果您尝试在模拟器中运行应用程序,请确保在"运行" - >"运行配置" - >"目标"中指定了正确的体系结构(您可能需要使用"窗口" - >"Android虚拟设备管理器"添加所需的模拟器).
尝试在英特尔模拟器中执行应用程序时,我遇到了同样的问题,而应用程序正在使用为ARM预编译的库.
Bil*_*Hoo 11
我也有这个问题,但对于我的情况,我在另一个项目中使用我的库.我不认为这是eclipse或android-ndk的问题.
你可以查看这些可以导致的提示,UnsatisfiedLinkError它对我来说很好,祝你好运:)
/your project/libs/armeabi/


编辑:
UnsatisfiedLinkError总而言之,如果库未安装到您的app.apk中,则会抛出它,因此无法成功链接.就我而言,在制作系统应用程序时,问题与权限有关.将" .so "文件放入/system/lib/或/system/vendor/lib/目录后,我将默认分配的权限600修改为755.它运行良好.
我遇到了同样的问题,这些是我对项目的一些问题:
System.load("hello-test");成System.loadLibrary("hello-test");;JNIEXPORT jstring Java_com_example_testndk_TestNDK_funcNami(JNIEnv* env, jobject thiz):此处使用Java_<java_package_name>_<java-class-name>_<function-name>;local.properties在我的例子中添加NDK路径ndk.dir=<my-path-to-ndk-directory>; 和build.gradle的内容还包括defaultConfig:ndk { moduleName "hello-test" }.com.example.testndkTestNDKhello-test.cAndroidProjects/TestNDK/app/src/main/jniIDE:Android Studio 0.8.1.
刚刚遇到了类似的问题。
查看您的 /data/data/your.package.name/lib 目录
当我在我的包目录中时,它当前显示:
lib -> /mismatched_uid/settings_10037/fs_1000
Run Code Online (Sandbox Code Playgroud)
可能我不小心切换了sharedUserId,因此无法再访问该库。
| 归档时间: |
|
| 查看次数: |
55140 次 |
| 最近记录: |