Android 处理任务java.io时发生Gradle(ProGuard)异常(zip条目重复)
当我构建一个发布版本时,我得到以下gradle警告:Android 处理任务java.io时发生Gradle(ProGuard)异常(zip条目重复),android,android-gradle-plugin,google-play,proguard,play-billing-library,Android,Android Gradle Plugin,Google Play,Proguard,Play Billing Library,当我构建一个发布版本时,我得到以下gradle警告: Warning:Exception while processing task java.io.IOException: Can't write [C:\Users\MyName\AndroidStudioProjects\MyApp\app\build\intermediates\transforms\proguard\free\release\jars\3\1f\main.jar] (Can't read [C:\Users\MyNam
Warning:Exception while processing task java.io.IOException:
Can't write [C:\Users\MyName\AndroidStudioProjects\MyApp\app\build\intermediates\transforms\proguard\free\release\jars\3\1f\main.jar]
(Can't read [C:\Users\MyName\AndroidStudioProjects\MyApp\app\build\intermediates\classes\free\release(;;;;;;**.class)]
(Can't read [com] (Can't read [android] (Can't read [vending] (Can't read [billing]
(Can't read [IInAppBillingService$Stub$Proxy.class]
(Duplicate zip entry [com/android/a/a/a$a$a.class == com/android/vending/billing/IInAppBillingService$Stub$Proxy.class])))))))
和错误:
Error:Execution failed for task
':app:transformClassesAndResourcesWithProguardForFreeRelease'.
> Job failed, see logs for details
可能是某种预防问题。这是因为我一直在尝试实施新的。我尝试过清理和重建项目(好几次),并使缓存无效并重新启动,但都没有成功
请注意,请确实确定此处要包含哪些资源。。。以下是相关内容的片段
从build.gradle
:
compileSdkVersion 26
buildToolsVersion '26.0.1'
defaultConfig {
minSdkVersion 16
targetSdkVersion 26
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':playLicensing')
compile 'com.android.billingclient:billing:1.0'
compile 'com.firebase:firebase-jobdispatcher:0.8.3'
compile 'com.google.android.gms:play-services-location:11.4.2'
compile 'com.google.android.gms:play-services-places:11.4.2'
compile 'com.google.android.gms:play-services-auth:11.4.2'
compile 'com.google.guava:guava:23.1-android'
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:design:26.0.2'
}
以及从proguard rules.pro
:
-dontwarn com.google.**
-keepattributes EnclosingMethod
-keepattributes JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
-printmapping mapping.txt
-dontwarn com.google**
-keepattributes封闭方法
-keepattributes JavascriptInterface
-keepclassmembers类*{
@android.webkit.JavascriptInterface;
}
-assumenosideeffects类android.util.Log{
公共静态布尔isLoggable(java.lang.String,int);
公共静态INTV(…);
公共静态int i(…);
公共静态int w(…);
公共静态int d(…);
公共静态INTE(…);
}
-printmapping.txt
好的,我知道问题出在哪里了。使用,可以将IInAppBillingService.aidl
文件放入项目中的aidl
子文件夹中。这是我的:
我已经删除了所有旧的账单内容,除了那个文件。。。但现在我也已经删除了它,用新的Play Billing Library构建我的应用程序也没什么问题。同样的问题也发生在我身上,但goolge services auth。问题是我甚至不使用这个库。不知道怎么解决这个问题