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开发遇到问题点滴

猜你喜欢

转载自blog.csdn.net/u011570979/article/details/46136649