DexGuard java.io.IOException: та же банка ввода

Я сталкиваюсь с этой проблемой при использовании dexguard

> Task :app:dexguardStaging FAILED

Метод TaskInternal.execute() устарел, и его планируется удалить в Gradle 5.0. Есть лучшие способы повторного использования логики задач, см. https://docs.gradle.org/4.3/userguide/custom_tasks.html#sec:reusing_task_logic.

ОШИБКА: сборка не удалась с исключением.

  • Что пошло не так: не удалось выполнить задачу «:app:dexguardStaging».
    #P4#

Кто-нибудь может помочь?

ОБНОВЛЕНИЕ Я исправил эту проблему, вернувшись к дистрибутиву Gradle 3.5, ранее использовавшему 4.3,

distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip

и понизить всю сборку с 3.0.0 до 2.3.3, удалить maven google.com

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

Эта проблема возникла, когда я использую Android Studio 3 со сборкой gradle 3.0.0 или 3.0.1, а dexguard (7.3.11) также использует (8.0.18) enable.

это может быть несоответствие последней версии Gradle с версией dexguard.

Спасибо


person raditya gumay    schedule 24.11.2017    source источник
comment
Не могли бы вы дать мне скриншот logcat? поэтому я определяю, в чем именно проблема.   -  person Chetan Kumar Patel    schedule 24.11.2017
comment
только что обновил его, только то, что я получил.   -  person raditya gumay    schedule 24.11.2017
comment
@ChetanPatel Это ошибка сборки, а не ошибка времени выполнения, поэтому нет logcat.   -  person m0skit0    schedule 24.11.2017
comment
Похоже, вы дважды включаете библиотеку SDK.   -  person m0skit0    schedule 24.11.2017
comment
@ m0skit0 да, у меня было несколько модулей, в которых использовалась версия support-v4. но я объединил их с той же версией.   -  person raditya gumay    schedule 24.11.2017
comment
Я знаю ошибку сборки. но какая именно проблема может быть проблемой multidex   -  person Chetan Kumar Patel    schedule 24.11.2017
comment
@ChetanPatel Опять же: вы запрашиваете logcat, но если есть ошибка сборки, logcat не может быть, потому что нет APK   -  person m0skit0    schedule 24.11.2017
comment
Нет, он дважды включает android.jar, а не поддерживает библиотеку. Это указано в сообщении об ошибке, которое вы опубликовали.   -  person m0skit0    schedule 24.11.2017
comment
Проверьте мой ответ и дайте мне знать, если он работает   -  person Chetan Kumar Patel    schedule 25.11.2017
comment
привет ChetanPatel и m0skit0 спасибо за помощь, я решил эту проблему   -  person raditya gumay    schedule 25.11.2017


Ответы (1)


Пожалуйста, попробуйте приведенный ниже код и дайте мне знать, если он работает для вас

Внесите изменения в свой градиент, как это

применить плагин: 'com.android.application'

android {

    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.example.testapp"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.1"
        multiDexEnabled true  // put this line in your gradle
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    //put below code in your gradle
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:1.0.2'  //put this dependencies in your gradle
    // Rest of your dependencies
}

а также изменения в вашем файле приложения.

public class TestApplication extends MultiDexApplication {

    @Override
    public void onCreate() {
        super.onCreate();
    }
}

&

В файле манифеста >> в теге приложения >> укажите строку ниже

android:name=".TestApplication"

Надеюсь, это сработает для вас, и если это сработает, дайте мне знать.

person Chetan Kumar Patel    schedule 25.11.2017