我最近将我的混合MobileFirst应用程序的mfp插件升级到8.0.20180408,并将cordova-android插件升级到7.0.0.当我对应用程序进行调试构建时,构建成功,但是当我进行发布构建(签名apk)时,该过程生成了许多proguard警告.当我将cordova-android版本降级到6.4.0时,发行版本成功.
自从MobileFirst iFix 8.0.0.0-MFPF-IF201804051553起,自iFix release notes起,mobilefirst cordova插件应该支持cordova-android v7,但在此ifix中似乎存在问题.
解决方法:
我对proguard配置文件进行了一些调查,因为gradle构建过程中似乎找不到正确的proguard配置文件.
mfp cordova插件包含一个名为proguard-project-mfp.txt的proguard配置文件,该文件已添加到混合项目的android平台中.该插件还包含一个gradle文件
dev-build-extras.gradle
它指定proguard配置文件的位置.配置中指定的proguard文件没有附加路径:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project-mfp.txt'
似乎在cordova-android 7.x中,当生成android平台时,它将proguard-project-mfp.txt文件复制到目录中
platforms/android/app/src/main/
而dev-build-extras.gradle文件位于目录中
platforms/android/cordova-plugin-mfp/
这意味着gradle无法找到proguard配置文件.相对于gradle文件,更新gradle文件中的proguard配置文件位置似乎可以解决此问题,并允许构建签名的apk.
总结一下,更新文件
platforms/android/cordova-plugin-mfp/dev-build-extras.gradle
与以下
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project-mfp.txt' proguardFiles getDefaultProguardFile('proguard-android.txt'), '../app/src/main/proguard-project-mfp.txt'
您的dev-build-extras.gradle文件现在应如下所示:
android {
buildTypes {
release {
minifyEnabled true
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project-mfp.txt'
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../app/src/main/proguard-project-mfp.txt'
}
}
.
.
.
}