Android Studio 1.3.1
我有以下文件:
%APPNAME%\应用\的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "com.example.app"
minSdkVersion 9
targetSdkVersion 17
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
repositories {
maven { url "https://jitpack.io" }
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:appcompat-v7:21.1.2'
compile 'com.github.PhilJay:MPAndroidChart:v2.0.8'
}
%APPNAME%\应用\ proguard的-project.txt
-dontwarn com.google.android.gms.
-keep class com.google.android.gms.** { *; }
-dontwarn android.support.v7.
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-dontwarn com.github.PhilJay.
-keep class com.github.PhilJay.** { *; }
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
(我在这里尝试过很多东西。还是要学会确保一切都是100%正确)
当我尝试生成已签名的APK时,我收到错误:
错误:任务':app:packageRelease'执行失败。无法 计算哈希值 宽:\机器人工作室项目\%APPNAME%\应用\建立\中间体\类-proguard的\释放\ classes.jar
在此之前我得到这两个警告:
警告:com.google.android.gms.internal.zzhu:无法找到引用 class android.security.NetworkSecurityPolicy警告:有3个 对类或接口的未解析引用。 您可能需要添加缺少的库jar或更新其版本。 如果您的代码工作正常而没有丢失的类,则可以禁止 警告' -dontwarn'选项。 (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) 处理任务时出现异常
现在,如果我改为
minifyEnabled true
它有效,但......我宁愿使用minify。我不确定警告是否是原因?毕竟,它说警告可以被取消,所以这些警告不一定是错误的原因吗?
答案 0 :(得分:1)
关于哈希生成问题,当我尝试生成已启用minify和proguard的已签名apk时,我遇到了同样的问题。
请注意,我确信proguard配置有效,因为我将它用于Eclipse中的同一个项目。
我找到的解决方法是删除项目的.gradle(而不是gradle !!)和所有模块的构建目录。
然后我进行完全重建..然后完成了apk。
我知道这不是最好的解决方案......但它确实有效。