首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AndroidStudio3.1中任务':app:transformClassesWithAndroidGradleClassShrinkerForDebug‘的执行失败

AndroidStudio3.1中任务':app:transformClassesWithAndroidGradleClassShrinkerForDebug‘的执行失败
EN

Stack Overflow用户
提问于 2018-04-11 08:25:09
回答 2查看 1.6K关注 0票数 2

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

代码语言:javascript
复制
: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 3.1.0时,一切都很好。

app/build.gradle

代码语言:javascript
复制
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工具的新特性引起的:,网络分析器,,因为com/android/tools/profiler/agent路径,我打开高级分析工具来跟踪网络负载。

我也不想让护卫也失效。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-23 00:42:01

这似乎是AndroidStudio3.1.1的一个bug。这是Android注入的一些ProGuard处理不好的额外代码。构建APK或手动执行gradle命令不受影响。

选项1: (首选)禁用高级剖面

选项2:禁用Debug生成的收缩

选项3:在从Android部署应用程序时包括okhttp库。可能只适用于调试风格(如果测量某物,ProGuard将删除任何未使用的方法,将不会造成很大的开销)

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

票数 4
EN

Stack Overflow用户

发布于 2018-04-11 12:31:36

如果您使用的是3.1.1

代码语言:javascript
复制
  classpath 'com.android.tools.build:gradle:3.1.1'

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

代码语言:javascript
复制
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需要,那么使用以下命令

代码语言:javascript
复制
buildToolsVersion '27.0.3'

还可以在项目中更改gradle (路径:':libzcamera')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49770112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档