首先介绍debug版App与release版App区别
release是发行版本,比debug版本有一些优化,文件比debug文件小,运行速度快
debug是调试版本,包含的程序信息更多
debug和release调用两个不同的底层库
debug设置断点,进行单步执行等调试,而release不含任何调试信息
Android开发时可能会遇到在真机上调试时的debug App分享给其他用户打开失败,或者再安装release发行版App时,签名不一致导致安装失败或者一些SDK不能初始化这些问题
核心的解决方法都是:将debug版本与release版本的apk签名设置一致即可
设置方法如下:
在应用级的build.gradle的android{}字典内添加如下代码:
应用级的build.gradle 即文件开头有 apply plugin: 'com.android.application' 的build.gradle 文件
signingConfigs { config { keyAlias 'key0' //自己打包签名别名 keyPassword '123456' //自己的打包key密码 storeFile file('E:\\pt\\AS_SDK\\apk2.jks') //自己的签名存储路径 storePassword '123456'//自己的store密码 } } buildTypes { release { //应该本来就有release字典,只用在其中添加字典内第一句代码即可 signingConfig signingConfigs.config minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug{ //debug块本来应该没有 需要手动添加 signingConfig signingConfigs.config } }
具体改正后的android字典如下:
android { signingConfigs { config { keyAlias 'key0' keyPassword '123456' storeFile file('E:\\pt\\AS_SDK\\apk2.jks') storePassword '123456' } } compileSdkVersion 28 defaultConfig { applicationId "com.example.hello" //这里填你自己的应用id minSdkVersion 15 targetSdkVersion 28 versionCode 101 versionName "1.0.1" //版本号 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { signingConfig signingConfigs.config minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug{ signingConfig signingConfigs.config } } ndkVersion '22.1.7171670' //指明ndk版本号 }
经上述修改后,可使得debug版与release版应用签名一致