第五篇:关于MVPArms打包混淆及报错解决
至于普通的平常的打包混淆,網上好多教程,也就不廢話了。(記得添加作者的proguard-rules.pro的混淆規則)
再在自己的proguard-rules.pro中添加
-keep class 自己的包名.app.GlobalConfiguration -keep class 自己的包名.app.GlobalHttpHandlerImpl -keep class 自己的包名.app.ResponseErrorListenerImpl--原因是因為這幾個類是使用反射的原理(貌似是這樣,記不清)
打包成功,如果運行報錯 出現?? java.lang.NoClassDefFoundError 錯誤,就按作者給出的解決方案
?????? 在 Android 4.4 或以下版本如果突然出現 java.lang.NoClassDefFoundError 錯誤, 或者 java.lang.ClassNotFoundException 異常, 以及無緣無故提示 Unable to find ConfigModule 異常, 請根據這個 解決方案 處理, 也可以嘗試下這個比較 簡便的方式
????? 如果在 Android 5.0 或以上版本出現以上問題, 請在接入 com.android.support:multidex:x.y.z 后, 在當前 Module 的 build.gradle 中加入以下代碼:
dexOptions {javaMaxHeapSize "4g"jumboMode = truepreDexLibraries = falseadditionalParameters = ['--multi-dex',//多分包'--set-max-idx-number=60000'//每個包內方法數上限]}這就應該可以解決大多數的報錯
而我的報錯,卻很奇葩
Caused by: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.jess.arms.base.BaseApplicationat com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication.attachBaseContext(BUGLY:12)at android.app.Application.attach(Application.java:189)at android.app.Instrumentation.newApplication(Instrumentation.java:1102)at android.app.Instrumentation.newApplication(Instrumentation.java:1086)at android.app.LoadedApk.makeApplication(LoadedApk.java:965)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5765)?at android.app.ActivityThread.-wrap1(Unknown Source:0)?at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)?at android.os.Handler.dispatchMessage(Handler.java:105)?at android.os.Looper.loop(Looper.java:164)?at android.app.ActivityThread.main(ActivityThread.java:6541)?at java.lang.reflect.Method.invoke(Native Method)?at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)?at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)?找不到BaseApplication的類
試了好多方法就是不行,我以為是mvparms沒有支持androidx(這個項目是使用androidx)。因為我記得作者因為第三方庫的原因沒有支持adnroidx的,不過我看到了這篇文章《AndroidStudio 一鍵遷移至 AndroidX》,就明白了,mvparms是支持androdx的。當我要放棄的時候,偶然看到了作者在別的文章上的回答,才恍然大悟。
在proguard-rules.pro中添加添加
-keep class com.jess.arms.base.BaseApplication?
問題解決,項目就跑起來了。
這個問題只適合我的錯誤,并不能解決所有,但是給我提供了一種解決問題的方式!
總結
以上是生活随笔為你收集整理的第五篇:关于MVPArms打包混淆及报错解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC学习九:MVC 特性本质
- 下一篇: 手游php,PHP响应式手游APP软件游