这个项目有两套APP name和图标(ic_face1和旅途1,ic_face2和旅途2),经常需要进行切换打不同的包。之前没什么问题,最近打包的时候出现了问题,即在AndroidManifest.xml的application中更改为android:icon="@mipmap/ic_face2"和android:label="旅途2",在Android studio中点run按钮运行时安装到手机上是正常的,但是打包成功后安装APP却显示APP图标为ic_face1,APP名字为旅途1,并且APP打开失败。安装多次仍是这样,查看AndroidManifest.xml中的application配置也没问题,把ic_face1删除也不行。点sync project同步项目也不行。
想到可能是由缓存什么的,后来又clean project,没问题,点run运行也没问题,但是打包,就报错:
Error:A problem was found with the configuration of task ':app:packageRelease'.
> File 'G:\project\yiweidacheng\FaceNum\app\build\intermediates\res\resources-release-stripped.ap_' specified for property 'resourceFile' does not exist.
查资料,解决方法是设置build.gradle里的buildTypes里的release的shrinkResources为false即可,如果是 release-stripped.ap_' specified for property 'resourceFile' does not exist.则设置buildTypes里的debug的shrinkResources为false。原因是Gradle2.0以上版本minifyEnabled字段为true时已经包含了shrinkResources,即在代码优化时会自动去掉多余资源,所以在打正式包时也不需要设置shrinkResources字段。
buildTypes {
release {
minifyEnabled false
// Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources false //改为false就可以了
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
//minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
经测试,问题解决。