自動更新混淆後無法使用怎麼辦

  • 作者:由 匿名使用者 發表于 攝影
  • 2023-01-08

自動更新混淆後無法使用怎麼辦llzzcc66 2017-09-10

混淆後出錯(為什麼用proguard混淆後,友盟AndroidSDK的一些功能不可用?)

如果您的應用使用了混淆, 請新增

-keepclassmembers class * {

public (org。json。JSONObject);

}

這是由於SDK中的部分程式碼使用反射來呼叫建構函式, 如果被混淆掉, 在執行時會提示“NoSuchMethod”錯誤。

另外,由於SDK需要引用匯入工程的資原始檔,通過了反射機制得到資源引用檔案R。java,但是在開發者透過proguard等混淆/最佳化工具處理apk時,proguard可能會將R。java刪除,如果遇到這個問題,請在proguard配置檔案中新增keep命令如:

-keep public class [您的應用包名]。R$*{

public static final int *;

}

把[您的應用包名] 替換成您自己的包名,如com。yourcompany。example。

如果您使用了雙向反饋功能,還需要新增下面程式碼,以免我們自定義的UI被混淆:

-keep public class com。umeng。fb。ui。ThreadView {

}

如果使用的是自動更新2。7。0版本,則需要加上以下混淆程式碼:

-dontwarn okio。**

-dontwarn com。squareup。wire。**

-keep class okio。** {*;}

-keep class com。squareup。wire。** {*;}

如果仍存在問題,可以再做如下操作:

# 新增第三方jar包

-libraryjars libs/umeng-sdk。jar

# 以下類過濾不混淆

-keep public class * extends com。umeng。**

# 以下包不進行過濾

-keep class com。umeng。** { *; }

Top