android混淆相关

来源:互联网 发布:国家博物馆淘宝 编辑:程序博客网 时间:2024/06/07 08:17

library源码中AndroidManifest的activity声明放到了application的AndroidManifest,运行时直接

Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.coolad.main/com.xxx.sdk.activity.b};

have you declared this activity in your AndroidManifest.xml?

但是我明明已经在AndroidManifest加了


<activity
    android:name="com.xxx.sdk.activity.ListActivity"    android:configChanges="keyboardHidden|orientation|screenSize"    android:launchMode="singleTask" />
发现 找不到的是com.xxx.sdk.activity.b,而我声明的是com.xxx.sdk.activity.ListActivity

这主要和混淆顺序有关。网上查了下,一般四大组建也是不混淆的。


ide先把library中的代码和library中AndroidManifest中的配置混淆,因为如果把ListActivity放在library中声明,是一起混淆的,所以没问题。


附1--混淆常用配置:


保留某个包下面的类以及子包

-keep public class com.example.widget.** 

保留所有类中使用的public方法

-keepclassmembers class ** {    @com.example.Test public *;    @com.example.Main public *;}

保留TEST类的静态字段属性

-keepclassmembers class com.example.Test {     public static java.lang.String INTENT_NAME;}


附2--:不混淆的类

反射的类和元素

GSON序列化反序列化

枚举

注解

反射元素

jni与java交互的native方法(其他语言与java混编方法)

0 0
原创粉丝点击