【问题标题】:Android app fails to load native library code on 2.2Android 应用无法在 2.2 上加载本机库代码
【发布时间】:2013-04-15 18:13:08
【问题描述】:

在使用 C++ (NDK) 构建的共享代码库的应用上工作时,Android 2.2 无法加载该库。

当我转到某个视图时,它需要加载从 .so 本机库中获取的结果,它适用于 2.3+,但在 2.2 上,应用程序只是进入黑屏。我认为它在加载本机代码的过程中会死机,但不确定发生了什么。

例如:在 2.3 上,ADT 详细输出如下所示:

04-15 11:49:07.210: DEBUG/dalvikvm(26048): 试图加载 lib /data/data/com.app.myapp/lib/libViewer.so 0x4051b858

04-15 11:49:07.220:调试/dalvikvm(26048):添加共享库 /data/data/com.app.myapp/lib/libViewer.so 0x4051b858

但在 2.2 上。它只是停留在:

04-15 11:56:27.123: DEBUG/dalvikvm(275): 试图加载 lib /data/data/com.app.myapp/lib/libViewer.so 0x45f3dc28

它就坐在这里......

有没有人遇到过这样的问题?

从 Java 的代码角度来看,它冻结在行:

static {
     System.loadLibrary("nativeViewer");//<-- goes into neverland here
}

【问题讨论】:

    标签: android android-ndk


    【解决方案1】:

    我在使用 gcc 4.7 编译时遇到了这个问题。当我改回使用默认编译器 gcc 4.6 时,我不再遇到您描述的问题。我查看了 ndk 文档,从未发现任何关于 gcc 4.7 无法在 android 2.2 及更早版本上运行的信息,但他们确实说 gcc 4.7 是实验性的。

    【讨论】:

    • 大卫,谢谢您的回复。看起来用 4.6 重新编译确实解决了这个问题。我现在可以进入应用程序,而无需去梦幻岛。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2015-09-30
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多