Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android loadLibrary失败,错误为FindLibrary在使用时返回null。因此,从其他源返回_Android_Android Ndk - Fatal编程技术网

Android loadLibrary失败,错误为FindLibrary在使用时返回null。因此,从其他源返回

Android loadLibrary失败,错误为FindLibrary在使用时返回null。因此,从其他源返回,android,android-ndk,Android,Android Ndk,我有一个来自其他团队的libother_team.so文件,我已经在我的项目中直接添加了这个文件,路径为libs/armeabi-v7a/ 当我尝试加载这个库时,它失败了,错误如下 java.lang.UnsatisfiedLinkError: Couldn't load other_team from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.example.testapp-1.apk, libraryPath

我有一个来自其他团队的libother_team.so文件,我已经在我的项目中直接添加了这个文件,路径为libs/armeabi-v7a/

当我尝试加载这个库时,它失败了,错误如下

java.lang.UnsatisfiedLinkError: Couldn't load other_team from loader    
dalvik.system.PathClassLoader[dexPath=/data/app/com.example.testapp-1.apk,
libraryPath=/data/app-lib/com.example.testapp-1]: findLibrary returned null

我在这个问题上被阻止了,非常感谢您对我的帮助。

您是否将.so库放在了正确的路径上? 正确的路径是:

  • /libs/armeabi
  • /libs/armeabi-v7a
  • /libs/mips
  • /libs/x86
基于设备架构


另外,请确保您试图调用的函数已正确地定义到C代码中(显然,Java本机方法正确地对应于C函数)。阅读了解更多信息。

要将库安装到
/data/app lib/com.example.testapp-1,它必须遵循命名约定:libwhater.so。您将在静态构造函数中使用
System.load(“任意”)
来加载它。您可以根据需要重命名第三方文件。请确保您的新名称足够独特,因为如果Android设备在
/system/lib
中具有相同的名称,那么系统库将由Java加载。

使用adb shell或终端列出/data/app lib/com.example.testapp-1的内容,因为您说自己构建它可以,但其他人提供的版本失败,他们很有可能使用了错误的工具链或设置。您可以将这些文件与ndk的readelf或objdump进行比较。此外,此错误消息似乎与我预期的不同。您使用什么命令显式加载本机库,运行该命令会导致什么出现在logcat中?(你肯定会看到一些关于成功或失败的信息)。是的,我有.so在right path\libs\armeabi-v7a\other_team.so中。但是仍然会出现上面的错误,为了验证同样的错误,我已经在我的\jni文件夹中添加了所有源代码。因此,它工作正常。但是在\libs\armeabi-v7a\other_team中只有.so没有相同的源。所以失败!!神像93号,你确定这是正确的路径吗?我相信项目文件夹通常是带有“s”的“libs”,而设备上的安装会自动结束在没有“s”的“lib”中。