我来到这里是因为我花了好几个小时用proguard修复我的问题。
我可以生成我的debug-apk而没有任何错误,而对于proguard,它有很多错误。
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
现在使用这些设置,我收到以下错误: (proguard-rules.pro =空)
警告:com.squareup.picasso.OkHttpDownloader:无法找到引用 class com.squareup.okhttp.OkHttpClient
所以我把这一行添加到我的proguard-rules.pro :(根据这个回答:https://stackoverflow.com/a/24765921/6510329)
-dontwarn com.squareup.picasso.**
现在我遇到以下错误:
Warning:Exception while processing task java.io.IOException: Can't write
[C:\Users\lexha\Desktop\Spaarkaart5\app\build\intermediates\transforms\proguard\release\jars\3\1f\main.jar]
(Can't read [C:\Users\[username]\.gradle\caches\modules-2\files-2.1\com.squareup.picasso\picasso\2.5.2\7446d06ec8d4f7ffcc53f1da37c95f200dcb9387\picasso-2.5.2.jar(;;;;;;**.class)]
(Duplicate zip entry [com/a/a/a$a.class == picasso-2.5.2.jar:com/squareup/picasso/Action$RequestWeakReference.class]))
放置picasso.jar的唯一地方是我的root \ app \ libs
所以我将这行添加到build.gradle中,因为我知道这是唯一的地方吗?
-injars libs\picasso-2.5.2.jar(!META-INF/MANIFEST.MF)
这给了我以下错误:
Warning:Exception while processing task java.io.IOException: Can't write [C:\Users\lexha\Desktop\Spaarkaart5\app\build\intermediates\transforms\proguard\release\jars\3\1f\main.jar]
(Can't read [C:\Users\lexha\.gradle\caches\modules-2\files-2.1\com.squareup.picasso\picasso\2.5.2\7446d06ec8d4f7ffcc53f1da37c95f200dcb9387\picasso-2.5.2.jar(;;;;;;**.class)]
(Duplicate zip entry [com/a/a/a$a.class == picasso-2.5.2.jar:com/squareup/picasso/Action$RequestWeakReference.class]))
这是我之前收到的错误。现在我真的很困惑,而且我现在还不知道该怎么做。
任何人都可以帮助我吗?
提前致谢
答案 0 :(得分:0)
尝试将此添加到您的proguard
-useuniqueclassmembernames
#########--------Android Support--------#########
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-dontwarn android.support.**
#########--------Picasso Setting--------#########
-keepattributes SourceFile,LineNumberTable
-keep class com.parse.*{ *; }
-dontwarn com.parse.**
-dontwarn com.squareup.picasso.**
-keepclasseswithmembernames class * {
native <methods>;
}
答案 1 :(得分:0)
这是因为您的应用中存在 duplicate
picasso库依赖项。删除root\app\libs
中的jar并使用以下命令保留或添加依赖项中的picasso库:
dependencies {
..
compile 'com.squareup.picasso:picasso:2.5.2'
..
}