Не удалось выполнить задачу ':app:transformClassesWithAndroidGradleClassShrinkerForDebug' в Android Studio 3.1

Я только что обновился с 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.

приложение/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.

Любые идеи? Помогите мне, пожалуйста.


person nhoxbypass    schedule 11.04.2018    source источник
comment
вставьте сюда build.gradle на уровне проекта и на уровне приложения, чтобы мы могли исправить тот же @nhoxbypass   -  person Chirag Talsaniya    schedule 11.04.2018
comment
@ChiragTalsaniya Я обновил вопрос   -  person nhoxbypass    schedule 11.04.2018
comment
добавить build.gradle project(path: ':libzcamera') этот @nboxbypass   -  person Chirag Talsaniya    schedule 11.04.2018
comment
@ChiragTalsaniya там ничего нет, я только компилирую библиотеку поддержки.   -  person nhoxbypass    schedule 11.04.2018
comment
изменить градиент, как указано в ответе @nhoxbypass   -  person Chirag Talsaniya    schedule 11.04.2018
comment
есть ли какая-нибудь библиотека внутри вашего libs?   -  person ישו אוהב אותך    schedule 18.04.2018
comment
@ישואוהבאותך Нет, я использую только jniLibs   -  person nhoxbypass    schedule 18.04.2018
comment
бесполезно сокращать отладочные сборки, и это также мешает тестам.   -  person Martin Zeitler    schedule 22.04.2019
comment
@MartinZeitler, это не бесполезно, братан, у нас есть для этого собственный вариант использования. И как сокращение отладочных сборок может повлиять на тесты?   -  person nhoxbypass    schedule 22.04.2019
comment
@nhoxbypass просто потому, что тестовое приложение ничего не знает о сопоставлении обфускации; точно так же неизвестны эти инъекционные классы из профилировщика. этот вариант использования не поддерживается платформой.   -  person Martin Zeitler    schedule 22.04.2019


Ответы (2)


Похоже на ошибку Android Studio 3.1.1. Это Android Profiler вводит некоторый дополнительный код, который плохо обрабатывается ProGuard. Создание APK или выполнение команд Gradle вручную не затрагивается.

Вариант 1: (предпочтительнее) отключить расширенное профилирование.

Вариант 2: отключить сжатие для отладочных сборок

Вариант 3. Включите библиотеку okhttp при развертывании приложения из Android Studio. [вероятно, только для отладки] (может быть полезно при измерении чего-либо, ProGuard удалит все неиспользуемые методы, не будет больших накладных расходов)


Если приведенные выше решения/быстрые исправления не работают, убедитесь, что вы не используете okhttp. Возможно, да, но он неправильно настроен. Вы можете использовать gradle app:dependencies, чтобы проверить, есть ли ссылки на okhttp в вашем проекте или любых связанных библиотеках.

person Mladen    schedule 23.04.2018
comment
Отключение расширенного профилирования работает для меня с Android Studio 3.1.4 - person ajimenez; 28.10.2018

если вы используете 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'

также измените gradle в проекте (путь: ':libzcamera')

person Chirag Talsaniya    schedule 11.04.2018
comment
Итак, инструменту сборки Gradle 3.1.1 нужен целевой SDK 27? Я изменил, но это не работает! - person nhoxbypass; 12.04.2018
comment
@nhoxbypass один раз попробуйте с minifyEnabled false - person Chirag Talsaniya; 12.04.2018