在 Android Studio 3 中激活 proguard 生成签名 Apk 时出错

Posted

技术标签:

【中文标题】在 Android Studio 3 中激活 proguard 生成签名 Apk 时出错【英文标题】:Error generating signed Apk with proguard activated in Android Studio 3 【发布时间】:2018-04-16 04:12:38 【问题描述】:

如果 proguard 处于活动状态,我无法创建签名的 apk。如果没有,它会起作用。 错误是:

警告:处理任务 java.io.IOException 时出现异常: 不能写 [C:\Users....\androidStudioProjects\BStats\app\build\intermediates\transforms\proguard\release\0.jar] (无法读取 [C:\Users.....gradle\caches\transforms-1\files-1.1\play-services-auth-base-11.0.1.aar\37c6010cc8e9c38e6022a124120862be\jars\classes.jar(; ;;;;;**。班级)] (重复的 zip 条目 [com/google/android/gms/b/ju.class== classes.jar:com/google/android/gms/internal/zzei.class])) 错误:任务 ':app:transformClassesAndResourcesWithProguardForRelease' 执行失败。

我的 gradle 文件:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:animated-vector-drawable:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
implementation 'com.android.support:customtabs:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

// Facebook stuff
// Android SDK
implementation 'com.facebook.android:facebook-android-sdk:4.+'
// Audience Network SDK. Only versions 4.6.0 and above are available
implementation 'com.facebook.android:audience-network-sdk:4.+'
// Account Kit
implementation 'com.facebook.android:account-kit-sdk:4.+'

如果我什至不使用它,它为什么会抱怨 play-services-auth-base-11.0.1.aar? 为什么不使用 proguard 会起作用?

感谢您的帮助。其他类似情况使用被提名的库,修复只是拥有正确版本的问题。事实并非如此。

我的前卫: -keepattributes 签名 -dontwarn com.google.android.gms.** - 如果没有,我会收到很多警告 - 我什至不会在我的应用中使用 com.google.android.gms。

谢谢。

【问题讨论】:

【参考方案1】:

从应用程序中删除构建文件夹并运行如果不工作比尝试Invalidate Caches/Restart.

编码愉快!!

【讨论】:

两者都做。我什至删除了 .gradle 文件夹。没有运气。错误仍然存​​在错误:任务':app:transformClassesAndResourcesWithProguardForRelease'的执行失败。 > 作业失败,详情请查看日志【参考方案2】:

很奇怪……

我做了这个改变:

// Android SDK
implementation( 'com.facebook.android:facebook-android-sdk:4.+' )
    exclude group: 'com.google.android.gms'


// Audience Network SDK. Only versions 4.6.0 and above are available
implementation( 'com.facebook.android:audience-network-sdk:4.+')
    exclude group: 'com.google.android.gms'


// Account Kit
implementation( 'com.facebook.android:account-kit-sdk:4.+')
            exclude group: 'com.google.android.gms'

现在正在使用 Proguard 生成 APK。我还没有测试它以查看 Facebook 集成是否正常工作。如果确实如此,我认为这应该在文档中得到更好的解释。

【讨论】:

以上是关于在 Android Studio 3 中激活 proguard 生成签名 Apk 时出错的主要内容,如果未能解决你的问题,请参考以下文章

在拍照时激活背景颜色 - Android Studio

Android Studio 笔记

最新版IDEA ,webStrom,Android Studio激活方法

android studio 怎么生成密钥库

Android Studio 3.3+ 每次打开项目出现AppCompatActivity等组件找不到的解决办法

Android Studio 4.1 中缺少 Logcat