混淆:
-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontpreverify # 混淆时是否做预校验 -verbose # 混淆时是否记录日志 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法 -keep public class * extends android.app.Activity # 保持哪些类不被混淆 -keep public class * extends android.app.Application # 保持哪些类不被混淆 -keep public class * extends android.app.Service # 保持哪些类不被混淆 -keep public class * extends android.content.BroadcastReceiver # 保持哪些类不被混淆 -keep public class * extends android.content.ContentProvider # 保持哪些类不被混淆 -keep public class * extends android.app.backup.BackupAgentHelper # 保持哪些类不被混淆 -keep public class * extends android.preference.Preference # 保持哪些类不被混淆 -keep public class com.android.vending.licensing.ILicensingService # 保持哪些类不被混淆 #避免混淆泛型 -keepattributes Signature -keepattributes *Annotation* #所有R文件 -keep class **.R$* { *; } -dontwarn com.iflytek.** -keep class com.iflytek.** {*;} #webview的js接口 -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } #baserecycleviewadapterhelper -keep class com.chad.library.adapter.** { *; } #实体类 -keep class com.xiyoukeji.baotu.entity.** { *; } -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native <methods>; } -keepclasseswithmembers class * { # 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * {# 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆 public void *(android.view.View); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; } #忽略警告 -ignorewarnings # 保持属性不管 -keepattributes Signature # 第三方jar包不混淆 #zxing -dontwarn com.google.zxing.** -keep class com.google.zxing.** { *;} #gson -dontwarn com.google.gson.** -keep class com.google.gson.** { *;} #3D 地图 V5.0.0之后: -keep class com.amap.api.maps.**{*;} -keep class com.autonavi.**{*;} -keep class com.amap.api.trace.**{*;} #定位 -keep class com.amap.api.location.**{*;} -keep class com.amap.api.fence.**{*;} -keep class com.autonavi.aps.amapapi.model.**{*;} #搜索 -keep class com.amap.api.services.**{*;} #2D地图 -keep class com.amap.api.maps2d.**{*;} -keep class com.amap.api.mapcore2d.**{*;} #导航 -keep class com.amap.api.navi.**{*;} -keep class com.autonavi.**{*;} #内置语音 V5.6.0之后 -keep class com.alibaba.idst.nls.** {*;} -keep class com.google.**{*;} -keep class com.nlspeech.nlscodec.** {*;} -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -keep interface android.support.v4.app.** { *; } -keep public class * extends android.support.v4.** -keep public class * extends android.app.Fragment #okhttp -dontwarn okhttp3.** -keep class okhttp3.**{*;} #okio -dontwarn okio.** -keep class okio.**{*;} # ButterKnife -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } # Retrofit -dontwarn retrofit2.** -keep class retrofit2.** { *; } -keepattributes Signature -keepattributes Exceptions -keepclassmembers class * { public <init>(org.json.JSONObject); } -keepclassmembers enum com.umeng.analytics.** { public static **[] values(); public static ** valueOf(java.lang.String); } # 友盟自动更新 -keepclassmembers class * { public <init>(org.json.JSONObject); } -keep public class cn.irains.parking.cloud.pub.R$*{ public static final int *; } -keep public class * extends com.umeng.** -keep class com.umeng.** { *; }
集成高德地图语音导航时,一定要加入讯飞语音的混淆规则
android 4.4出现过加载第三方库时,报错类找不到,7.0以上时程序完美运行
解决:其实是65535 方法数超标了,导入
compile 'com.android.support:multidex:1.0.0'
Application 中加入
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
Zbar 切换后台再次进入app出现黑屏情况,是因为surfaceView被销毁了
解决:在OnResume中调用初始化相机的方法