android 代碼混淆導致問題,快速定位,android混淆
代碼混淆導致問題,快速定位
在代碼混淆打包時,屏蔽了用到的第三方庫,以及常規的android混淆屏蔽,但產生的apk,運行還是會崩潰。事出必有因,後來分析找到原因是使用greendao自動產生的java-gen下package中的內容沒有屏蔽代碼混淆,導致儲存資料庫時,報*a(SourceFile:) NullPointerException *
混淆打包apk,運行崩潰 總結如下:
我們在打包時,debug版本沒問題,但混淆後release版本有時會出現異常崩潰,
比如:a(SourceFile:) NullPointerException
針對這種情況,可以通過抓UncaughtExceptionHandler崩潰日誌或者第三方比如雲測工具查看崩潰的原因。在androidstudio下還有一種更好的方式。
在androidstudio中可以設定debug下也混淆,通過android log直觀的、快速的定位問題所在
設定如下
signingConfigs { release { } debug{ } }} buildTypes { release { // 不顯示Log buildConfigField "boolean", "LOG_DEBUG", "false" //開啟代碼混淆 minifyEnabled true // 移除無用的resource檔案 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release //使用上述簽名資訊 } } debug { //開啟代碼混淆 minifyEnabled true // 移除無用的resource檔案 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.debug } }
更多問題請關注 android開發遇到問題點滴