Не удалось построить apk: количество ссылок метода не может превышать 64K

Я пытаюсь создать файл apk для своего приложения, однако, я получаю сообщение об ошибке: количество ссылок метода не может превышать 64 КБ.

Вот ошибки,

Ошибка: количество ссылок метода в файле .dex не может превышать 64 КБ. Узнайте, как решить эту проблему на странице https://developer.android.com/tools/building/multidex.html.

Ошибка: выполнение выполнено для задачи ': app: transformClassesWithDexForDebug'.

Com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process. Internal.ExecException: процесс «команда» C: \ Program Files \ Java \ jdk1.7.0_15 \ bin \ java.exe '' завершен с ненулевым значением выхода 2

Это мой файл градиента,

apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "nikhilraghavendra.hopper" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { shrinkResources true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE-FIREBASE.txt' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' compile 'com.google.android.gms:play-services-identity:8.4.0' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.android.support:cardview-v7:23.2.1' compile 'com.google.android.gms:play-services:8.4.0' } 

Я хочу создать файл apk и развернуть его без каких-либо проблем, как мне это сделать?

Обновить

Я также попробовал следующее

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" dexOptions { maxProcessCount = 4 // this is the default value } dataBinding{ enabled = true } defaultConfig { applicationId "nikhilraghavendra.hopper" minSdkVersion 21 targetSdkVersion 23 resConfigs "en", "fr" versionCode 1 versionName "1.0" } buildTypes { release { shrinkResources true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled true useProguard false } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE-FIREBASE.txt' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' compile 'com.google.android.gms:play-services-identity:8.4.0' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.android.support:cardview-v7:23.2.1' compile 'com.google.android.gms:play-services:8.4.0' } 

Это создает сообщение:

Ошибка: выполнение выполнено для задачи ': app: transformClassesWithNewClassShrinkerForDebug'.

Предупреждения, обнаруженные во время сокращения, используйте -dontwarn или -ignorewarnings, чтобы их подавить.

Как я могу справиться с этим и построить правильный apk? Пожалуйста помоги.

Solutions Collecting From Web of "Не удалось построить apk: количество ссылок метода не может превышать 64K"

 android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "com.try.app" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" multiDexEnabled true } 

Здесь multiDexEnabled true должен сделать игру для вас

UPDATE: поддержка последней версии Android
1. Если для вашего minSdkVersion установлено значение 21 или выше, все, что вам нужно сделать, это установить для параметра multiDexEnabled значение true в файле build.gradle на уровне модуля, как показано выше.
2. Однако если для вашего minSdkVersion установлено значение 20 или ниже, вы должны использовать библиотеку поддержки multidex вместе с приведенными выше изменениями следующим образом:

 dependencies { compile 'com.android.support:multidex:1.0.1' } 

Помимо вышеуказанного добавления библиотеки поддержки, вам необходимо внести изменения в свой класс приложений, как указано в этой ссылке .

ЛУЧШАЯ ПРАКТИКА:
1. Удалите неиспользуемый код с помощью proguard.
2. Избегайте добавления ненужных зависимостей в свой проект.
3. Если требуются ограниченные методы или классы любой библиотеки с открытым исходным кодом, тогда желательно, чтобы они клонировали только те, что были в вашем проекте, так как это не только дает вам полный контроль над ними, но также позволяет proguard действовать на них, и у вас нет Любые неиспользуемые методы в вашем коде.

Источник: разработчики Android – настройка приложений с использованием 64K-метода

Не удалось построить apk: число ссылок на методы не может превышать 64K, когда файл app.exx имеет более 65 536 методов.

Превышение 65K Метод, который означает, что метод насчитывает более 65 536 методов. Существуют различные способы его устранения:

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

Большинство проблем, которые я обнаружил у других разработчиков, – это использовать Google Play Services в их проекте, как это.

  compile 'com.google.android.gms:play‐services:8.4.0' 

Таким образом, лучший способ – выбрать только некоторые зависимости в сервисах Google Play, которые вы действительно хотите использовать.

 compile 'com.google.android.gms:play‐services‐location:8.4.0' compile 'com.google.android.gms:play‐services‐maps:8.4.0' compile 'com.google.android.gms:play‐services‐ads:8.4.0' 

2. Установите минимальную версию SDK на 21 или выше.

Почему это сработало при изменении минимального SDK до 21? Именно из-за Android 5.0 или выше используются ART (Android Runtime), которые поддерживают MultiDex вместо Dalvik. Таким образом, АРТ может поддерживать более 65 536 методов.

3. Используйте Proguard для уменьшения бесполезного метода

4. Используйте MultiDex

Но это ограничение библиотеки MultiDex

• Может возникнуть ANR при запуске приложения, если файлы .dex слишком велики.

• Должно быть определено минимальное значение SDK до версии 14 или выше.

• MulitDex использует больше памяти и может сбой при работе приложения, если память распределения превышает лимит.

• Уделите больше времени на сборку, когда вы строите проект

Поместите это внутри вашего defaultConfig :

 multiDexEnabled true