---已解决:从 :app:build.gradle 中删除了 2 行---
compile files('ParseLoginUI/libs/Parse-1.9.1.jar')
compile files('ParseLoginUI/libs/ParseFacebookUtilsV4-1.9.1.jar')
此处的 lib注释可以解释为“您需要在 proj.root.build.gradle 中使用这 2 条语句。这不是真的。我不得不删除这些语句,以免从 proguard 收到 'dupe zip' 错误。
- 解决了 -
将parseUI 库从 v3升级到 v4 进行得很顺利,直到我尝试在 gradle“assembleRelease”任务中运行 proguard。
错误:
:proguardRelease 失败
FAILURE:构建失败并出现异常。
* What went wrong:
Execution failed for task ':proguardRelease'.
> java.io.IOException: Can't write [/home/rob/src/CastVideos-android/build/intermediates/classes-proguard/release/classes.jar]
(Can't read [/home/rob/src/CastVideos-android/build/intermediates/exploded-aar/CastVideos-android/ParseLoginUI/unspecified/libs/Parse-1.9.1.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [Parse-1.9.1.jar:com/parse/AnonymousAuthenticationProvider.class]))
我检查了 proguard 常见问题解答中的“dupe zip”......我试图弄清楚依赖关系树如何处理该库中的./libs/Parse-1.9.1.jar的重复。
即时消息卡住
构建.gradle...
packagingOptions {
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/MANIFEST'
...
buildTypes {
release {
minifyEnabled true
proguardFile 'proguard-android-optimize.txt'
signingConfig signingConfigs.release
}
...
dependencies {
compile files('libs/android-query.0.25.10.jar')
compile files('libs/jackson-core-lgpl-1.9.2.jar')
compile files('libs/jackson-mapper-lgpl-1.9.2.jar')
compile 'com.github.amlcurran.showcaseview:library:5.0.0'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5'
// to get around https://code.google.com/p/android/issues/detail?id=52962, we need to
// depend on both debug and release versions of the library
releaseCompile project(path: '..:CastCompanionLibrary-android', configuration: 'release')
debugCompile project(path: '..:CastCompanionLibrary-android', configuration: 'debug')
compile project(':ParseLoginUI')
compile files('ParseLoginUI/libs/Parse-1.9.1.jar')
compile files('ParseLoginUI/libs/ParseFacebookUtilsV4-1.9.1.jar')
compile 'com.facebook.android:facebook-android-sdk:4.0.1'
}
“发布”的依赖关系图...
...
+--- project :ParseLoginUI
| +--- com.parse.bolts:bolts-android:1.2.0
| \--- com.android.support:support-v4:22.0.0
| \--- com.android.support:support-annotations:22.0.0
+--- com.facebook.android:facebook-android-sdk:4.0.1
| +--- com.android.support:support-v4:[21,22) -> 22.0.0 (*)
| \--- com.parse.bolts:bolts-android:1.1.4 -> 1.2.0
\--- project :..:CastCompanionLibrary-android
+--- com.android.support:appcompat-v7:22.+ -> 22.0.0
| \--- com.android.support:support-v4:22.0.0 (*)
+--- com.android.support:mediarouter-v7:22.+ -> 22.0.0
| \--- com.android.support:appcompat-v7:22.0.0 (*)
\--- com.google.android.gms:play-services-cast:7.+ -> 7.0.0
\--- com.google.android.gms:play-services-base:7.0.0
\--- com.android.support:support-v4:22.0.0 (*)
在 project.root 下,唯一的 jar 文件是:
./ParseLoginUI/libs/ParseFacebookUtilsV4-1.9.1.jar
./ParseLoginUI/libs/Parse-1.9.1.jar
前卫配置...
-keep class com.facebook.** { *; }
-keep class com.parse.** { *; }
-dontwarn com.parse.**
-dontnote com.parse.**