android混淆相关

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混编方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值