【问题标题】:NativeActivty will not start - Unable to load native libraryNativeActivty 将无法启动 - 无法加载本机库
【发布时间】:2013-08-06 14:11:09
【问题描述】:

我创建了另一个问题,因为所有其他问题的答案都是相似但不相关的解决方案。我还确保这不是符号剥离问题。

我遇到了可怕的错误:

D/AndroidRuntime(16487): Shutting down VM
W/dalvikvm(16487): threadid=1: thread exiting with uncaught exception (group=0x41b1b700)
E/AndroidRuntime(16487): FATAL EXCEPTION: main
E/AndroidRuntime(16487): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.test/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.test.test-1/libtest.so
E/AndroidRuntime(16487):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
E/AndroidRuntime(16487):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
...

一切都可以编译和链接。

我也有 app_dummy() 并且当我使用 objdump 运行时它会正确生成它:

001186f4 g    DF .text  000001a4 ANativeActivity_onCreate

如果重要的话,使用带有工具链 4.7.2 的 vs-android,针对 armv7-a 的 2.3.3 (android-10)。我有适当包含的库,并最终完全链接。

我仍然无法证明的一个理论是,我还需要将一些 .so 文件包含在 apk 中。我假设外部库(so)将与我自己的合并。如果不是这种情况,这可能会解释手头的问题。

我没有直接使用任何 makefile - vs-android 正在处理其中的大部分。我只能访问一些 .xml 和 .property 文件。

【问题讨论】:

    标签: android c++ android-ndk native-activity vs-android


    【解决方案1】:

    如果有无法找到的依赖库,这个错误似乎会模棱两可地出现。由于我使用的是 vs-android,我仍然不确定如何将外部 .so 文件正确包含在 /libs/ 路径下的 apk 中。

    包含外部 .so 文件的唯一解决方案是以某种方式将库放入您的 apk 并在代码中手动链接它们,在您的本地库加载之前在 Java 端调用 System.loadLibrary(),或者让一个本地库加载库,然后启动您的主库。

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 2013-01-24
      • 2019-04-03
      • 2014-05-06
      • 1970-01-01
      • 2013-04-23
      • 2013-09-06
      • 2015-03-01
      • 1970-01-01
      相关资源
      最近更新 更多