把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发现 找不到的是 com.xxx.sdk.activity.b,而我声明的是 com.xxx.sdk.activity. ListActivityandroid:name="com.xxx.sdk.activity.ListActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTask" />
这主要和混淆顺序有关。网上查了下,一般四大组建也是不混淆的。
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--:不混淆的类