Android应用无法在2.2上加载本机库代码

时间:2013-04-15 18:13:08

标签: android android-ndk

使用在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:DEBUG / 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
}

1 个答案:

答案 0 :(得分:1)

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