Доступ к Dex теперь невозможен, начиная с 1.4.0

когда я хочу синхронизировать gradle, я получаю эту ошибку:

Error:Access to the dex task is now impossible, starting with 1.4.0
1.4.0 introduces a new Transform API allowing manipulation of the .class files.
See more information: http://tools.android.com/tech-docs/new-build-system/transform-api

Когда я нажимаю ссылку, я не нахожу никакого решения. У каждого есть благодарность за решение.

Ответы

Ответ 1

установите вашу версию gradle явно в 1.3.0 в разделе зависимостей файла build.gradle

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

Ответ 2

Попробуйте понизить версию gradle до версии 1.3.0

Ответ 3

Как было предложено в других ответах, понижение рейтинга является одним из вариантов. Но это не решение. Как сказал David Argyle Thacker, что, если мы действительно хотим использовать более новую версию (из gradle инструмента сборки)?

У меня была такая же проблема при обновлении версии инструмента gradle в одном из моих проектов. Итак, я сделал следующее и вуаля, это сработало.

  • Обновите все библиотеки (зависимости от библиотек Google Play и библиотек поддержки вместе с другими используемыми SDK) до максимальной доступной версии. Если вы используете NewRelic, обновите его до последней версии.
  • Добавьте multiDexEnabled true в defaultConfig в /app/build.gradle.

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        multiDexEnabled true
    }
    
  • Удалите весь код, который вы ранее писали, чтобы заставить MultiDexing работать. Например,

    • Удалите блок afterEvaluate для MultiDex

      afterEvaluate {
          tasks.matching {
              it.name.startsWith('dex')
          }.each { dx ->
              if (dx.additionalParameters == null) {
                  dx.additionalParameters = []
          }
          dx.additionalParameters += '--multi-dex'
      
          // this is optional
          //  dx.additionalParameters += "--main-dex-list=$projectDir/multidex-classes.txt".toString()
          }
      }
      
    • Удалить multidex зависимость

      dependencies {
          ...
          compile 'com.android.support:multidex:1.0.1'
      }
      
    • Удалите код из AndroidManifest.xml

      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.example.pcsalt.multidex">
          <application
                  ...
              android:name="android.support.multidex.MultiDexApplication">
                  ...
          </application>
      </manifest>
      
    • Если вы используете собственный класс приложения, расширив android.app.Application, удалите MultiDex.install(base);

      @Override
      protected void attachBaseContext(Context base) {
              super.attachBaseContext(base);
              MultiDex.install(base);
      }
      
  • Обновите версию инструмента сборки до 2.1.2 (самая высокая стабильная версия, доступная на момент написания) в /build.gradle

    classpath 'com.android.tools.build:gradle:2.1.2'
    
  • Gradle Синхронизировать проект, нажав кнопку "Синхронизировать сейчас"

Надеюсь, это поможет.

http://www.pcsalt.com/android/solution-access-dex-task-now-impossible-starting-1-4-0