添加jni时出现如下问题
log 如下
01-07 17:34:51.406 W/dalvikvm( 2032): JNI_OnLoad returned bad version (-1) in /system/lib/libengfetch_jni.so 0x423fcc30
01-07 17:34:51.406 D/wll ( 2032): load libtesterstatus_jni error!01-07 17:34:51.406 W/dalvikvm( 2032): No implementation found for native Lcom/huaqin/runtime/engtools/engfetch;.engf_writephasecheck:(II)V
01-07 17:34:51.406 D/AndroidRuntime( 2032): Shutting down VM
01-07 17:34:51.406 W/dalvikvm( 2032): threadid=1: thread exiting with uncaught exception (group=0x41cdc378)
01-07 17:34:51.406 I/ ( 2032): JNI_OnLoad
01-07 17:34:51.406 E/ ( 2032): RegisterNatives failed for 'com/huaqin/runtime/engtools/engfetch'
01-07 17:34:51.406 E/ ( 2032): ERROR: registerNatives failed
01-07 17:34:51.406 E/AndroidRuntime( 2032): FATAL EXCEPTION: main
01-07 17:34:51.406 E/AndroidRuntime( 2032):

在Android开发中遇到JNI_OnLoad返回错误版本(-1)的问题,日志显示在libengfetch_jni.so中。分析发现可能由Proguard的代码优化引起,通过在编译时保留特定方法(-keep)解决了问题。具体解决方案是在Android.mk中添加LOCAL_PROGUARD_FLAG_FILES,并创建proguard.flags文件,保持com.huaqin.runtime.engtools.engfetch类的所有静态方法。
最低0.47元/天 解锁文章
4286

被折叠的 条评论
为什么被折叠?



