【问题标题】:Execution failed for task ':app:transformClassesWithAndroidGradleClassShrinkerForDebug' in Android Studio 3.1Android Studio 3.1 中的任务“:app:transformClassesWithAndroidGradleClassShrinkerForDebug”执行失败
【发布时间】:2019-04-22 11:31:56
【问题描述】:

我刚刚从 Android Studio 3.1 升级到 Android Studio 3.1.1(但仍在使用 Gradle 构建工具 3.0.0)。当我运行我的应用程序时,它会导致此错误:

:app:transformClassesWithAndroidGradleClassShrinkerForDebug
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/Interceptor
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/Interceptor
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/Request
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: okio/Okio
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/ResponseBody
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okio/Okio
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/Request
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/Response
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/Headers
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/ResponseBody
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/Interceptor$Chain
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/Response$Builder
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/Response
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/Headers
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/RequestBody
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/OkHttpClient$Builder
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/HttpUrl
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: com/squareup/okhttp/OkHttpClient
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: okio/BufferedSource
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/Interceptor$Chain
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/Response$Builder
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okhttp3/RequestBody
com/android/tools/profiler/agent/okhttp/OkHttp2Interceptor references unknown class: okio/BufferedSink
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okio/BufferedSource
com/android/tools/profiler/agent/okhttp/OkHttp3Interceptor references unknown class: okio/BufferedSink
:app:transformClassesWithAndroidGradleClassShrinkerForDebug FAILED
:app:buildInfoGeneratorDebug

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithAndroidGradleClassShrinkerForDebug'.
> Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.

但我没有在我的项目中使用 okhttp 或任何 Http 库(如 Retrofit,..)。

当我将 Gradle 构建工具升级到最新版本 3.1.1 时,也会发生此错误。我不知道为什么,当我降级回 Android Studio 3.1.0 时一切都很好。

app/build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.z.a.zcamera"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(path: ':libzcamera')
    implementation 'com.android.support:support-v4:26.1.0'
}

更新:

我认为这是由 Android Profiler 工具的新功能引起的:网络分析器,因为 com/android/tools/profiler/agent 路径,我正在打开高级分析以跟踪网络负载。

我也不想禁用 Proguard。

有什么想法吗?请帮帮我。

【问题讨论】:

  • 在项目级别和应用级别粘贴 build.gradle,以便我们可以纠正相同的@nhoxbypass
  • @ChiragTalsaniya 我已经更新了问题
  • 添加 project(path: ':libzcamera') 的 build.gradle 这个@nboxbypass
  • @ChiragTalsaniya 里面什么都没有,我只是编译支持库。
  • 更改答案@nhoxbypass中给出的gradle

标签: android android-studio android-gradle-plugin android-studio-3.1


【解决方案1】:

这似乎是 Android Studio 3.1.1 的一个错误。它的 Android Profiler 注入了一些 ProGuard 无法很好处理的附加代码。 手动构建 APK 或执行 gradle 命令不受影响。

选项 1:(首选)禁用advanced profiling

选项 2:为调试版本禁用收缩

选项 3:在从 Android Studio 部署应用程序时包含 okhttp 库。 [可能仅用于调试风格] (如果测量某些东西可能很有用,ProGuard 将删除任何未使用的方法,不会有很大的开销)


如果上述解决方案/快速修复不起作用,请确保您没有使用 okhttp。也许你是 - 它是not properly configured。您可以使用gradle app:dependencies 检查您的项目或任何链接库中是否引用了 okhttp。

【讨论】:

  • 禁用高级分析对我来说适用于 Android Studio 3.1.4
【解决方案2】:

如果您使用的是 3.1.1

  classpath 'com.android.tools.build:gradle:3.1.1'

那么你的 app/build.gradle 应该如下所示

apply plugin: 'com.android.application' 
android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.z.a.zcamera"
    minSdkVersion 14
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(path: ':libzcamera')
implementation 'com.android.support:support-v4:27.1.0'
}

如果 buildToolsVersion 需要,则使用此

buildToolsVersion '27.0.3'

project(path: ':libzcamera')中也改变gradle

【讨论】:

  • 那么gradle build tool 3.1.1需要target SDK是27吗?我改变了,但它不起作用!
  • @nhoxbypass 一次尝试 minifyEnabled false
猜你喜欢
  • 2018-11-17
  • 1970-01-01
  • 2015-05-23
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 1970-01-01
相关资源
最近更新 更多