在使用proguard构建应用程序以进行发布时,我收到了此错误。
任务执行失败':app:transformClassesAndResourcesWithProguardForRelease'。
<html ng-app="myApp">
<head>
<script type="text/javascript" src="/angular.min.js"></script>
<script src="/app.js"></script>
<title> Index </title>
</head>
<body ng-controller="MyController">
{{vr}}
{{name}}
<button ng-click="f1()">Click me</button>
</body>
</html>
build.gradle文件:
Warning:Exception while processing task java.io.IOException: Can't write
[C:\Users\sagar.HP\AndroidStudioProjects\MyApp\app\build\intermediates\
transforms\proguard\release\jars\3\1f\main.jar] (Can't read
[C:\Users\sagar.HP\.android\build-
cache\bf0ee9d089eb4a68c393\output\jars\classes.jar(;;;;;;**.class)]
(Duplicate zip entry [com/google/android/gms/internal/bs.class ==
classes.jar:com/google/android/gms/internal/zzas.class]))
Proguard-rules.pro
android {
compileSdkVersion 25
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "com.ardent.sys.telugulivetv"
minSdkVersion 17
targetSdkVersion 25
versionCode 12
versionName "2.3.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
shrinkResources false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
project.ext { appName = 'Telugu Live TV' }
def formattedDate = new Date().format('yyyyMMddHHmmss')
def newName = output.outputFile.name
newName = newName.replace("app-", "$project.ext.appName-") //"MyAppName" -> I set my app variables in the root project
newName = newName.replace("-release", "-release" + formattedDate)
//noinspection GroovyAssignabilityCheck
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/YouTubeAndroidPlayerApi.jar')
compile ('com.adincube.sdk:AdinCube-Java-206ebf:1.+@aar') {
transitive = true
}
compile('com.adincube.sdk:AdinCube-Native-RecyclerView-Extension:1.+') {
transitive = true
}
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.1'
compile 'com.google.firebase:firebase-crash:11.0.2'
compile 'com.google.firebase:firebase-core:11.0.2'
compile 'com.google.firebase:firebase-messaging:11.0.2'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.facebook.android:audience-network-sdk:4.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.code.gson:gson:2.8.1'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
我阅读了所有相关问题,但这并没有解决我的问题。请帮我解决这个错误。
答案 0 :(得分:4)
play-service-ads
facebook模块使用的audience-network-sdk
与firebase模块使用的模块之间存在冲突。以下将解决它:
compile('com.facebook.android:audience-network-sdk:4.+') {
exclude module: 'play-services-ads'
}
compile 'com.google.android.gms:play-services-ads:11.0.2'
但在那之后,你又发生了另一场冲突(这次与游戏服务无关):
com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com / facebook / ads / AbstractAdListener.class
这是因为com.adincube.sdk:AdinCube-Java-206ebf
包含对com.adincube.partner:facebook
的依赖关系,其具有包名com.facebook.ads
。我猜它是facebook库的非官方修改包。如果您确定不需要此依赖项,则可以将其排除在外:
compile('com.adincube.sdk:AdinCube-Java-206ebf:1.+@aar') {
transitive = true
exclude module: 'facebook'
}
否则请与adincube.com联系,以获取有关将其模块与com.facebook.android:audience-network-sdk