当前位置: 代码迷 >> Android >> 在牵系JNI的Android程序中慎用PROGUARD
  详细解决方案

在牵系JNI的Android程序中慎用PROGUARD

热度:30   发布时间:2016-05-01 16:01:38.0
在涉及JNI的Android程序中慎用PROGUARD

根据 ProGuard 的介绍

?

?写道
ProGuard的压缩程序操作能分析字节码,并删除无用的类、字段和方法。程序只保留功能上的等价,包括异常堆栈描述所需要的信息。

?

?

当 Java 方法,变量仅被下层 Native 代码调用时,该方法会被 ProGuard 删除,因此在运行时加载共享库的(*.so)的时候就会出现找不到方法的错误。

?

去除 Android.mk 里的如下代码

?

LOCAL_PROGUARD_ENABLED := full
?

?

1 楼 fastzch 2011-08-24  
-keepclasseswithmembernames class * {
    native <methods>;
}
2 楼 shaobin0604 2011-08-29  
fastzch 写道
-keepclasseswithmembernames class * {
    native <methods>;
}

嗯,后来也使用了这个方法
3 楼 miles002 2011-11-01  
Android.mk  在哪里呀 给个路径可以吗? NDK中那个?
4 楼 shaobin0604 2011-11-01  
miles002 写道
Android.mk  在哪里呀 给个路径可以吗? NDK中那个?

在 source 下编译的 Android 系统应用(如 Contacts, Browser )都有 Android.mk
  相关解决方案