使用在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
}
答案 0 :(得分:1)
使用gcc 4.7编译时出现此问题。当我改回使用默认编译器gcc 4.6时,我不再遇到你所描述的问题。我查看了ndk文档,从未看到任何关于gcc 4.7不能在android 2.2及更早版本上运行但是他们确实说gcc 4.7是实验性的。