Jam*_*aal 47 java android gradle build.gradle android-gradle-plugin
我正在尝试在Android应用上进行"发布"构建,并且我不断收到以下错误:
无法计算/../AndroidStudioProjects/../classes.jar的哈希值
然后,当我查看'classes.jar'的目录时,文件不在那里.我是否必须自己使用gradle任务创建此文件?
这里有一些关于proguard的事情,但除了"无法计算哈希......"之外,它没有提供太多有用的信息.
这是我的gradle.build文件:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", '"http://10.0.2.2:3000"'
}
release {
buildConfigField "String", "SERVER_URL", '"https://example.com"'
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debugRelease {
buildConfigField "String", "SERVER_URL", '"https://example.com"'
debuggable true
jniDebuggable false
renderscriptDebuggable false
minifyEnabled false
zipAlignEnabled true
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.android.support:recyclerview-v7:22.1.1'
compile 'com.android.support:cardview-v7:22.1.1'
compile 'com.google.android.gms:play-services-gcm:7.5.0'
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮我调试这个问题,那就太好了.
geo*_*sey 41
目前这个问题的所有答案都只是给出了适用于他们的Proguard规则,每个解决方案都会有所不同.首先,通过检查classes-proguard目录是否在错误消息中的某处来确认它是一个Proguard问题,如下所示:Unable to compute hash of /Users/Documents/projectX/app/build/intermediates/classes-proguard/release/classes.jar
这意味着它是由较早的Proguard错误引起的,因此您需要在"消息"窗口或"Gradle控制台"窗口中向上滚动,并检查您收到的警告或错误.举个例子,在我目前的项目中,Square的Picasso库导致错误:
Warning: com.squareup.picasso.OkHttpDownloader: can't find referenced class com.squareup.okhttp.OkHttpClient
.我刚添加-dontwarn com.squareup.okhttp.**
忽略警告,应用程序仍然正常工作.
许多Proguard错误都会出现关于某些类的警告,因此只需在项目中添加-dontwarn就可以在项目中添加-dontwarn.
我知道StackOverflow方式只是谷歌的错误信息,复制并粘贴最佳答案并希望最好,但在这里你要了解它并找出适合你的规则!
goR*_*Gon 21
对我来说,proguard.cfg中的以下两行帮助:
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
Run Code Online (Sandbox Code Playgroud)
Jam*_*aal 20
我解决了这个问题:
打开proguard-rules.pro
你的项目并将其添加到底部:
-dontwarn java.nio.file.Files
-dontwarn java.nio.file.Path
-dontwarn java.nio.file.OpenOption
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Run Code Online (Sandbox Code Playgroud)
基本上我是如何解决这个问题的,我尝试在"发布"模式下运行我的应用程序,并在这里遇到了一堆类似于这个人的错误:https://github.com/square/okio/issues/144
我几乎跟着他说的话并修好了.
希望这可以帮助其他人生成他们的APK!
归档时间: |
|
查看次数: |
33812 次 |
最近记录: |