2

Я только что перенес свой проект в Android Studio 2.2, и я не могу сгенерировать свой apk.DexIndexOverflowException после перехода на Android Studio 2.2

Я получил сообщение об ошибке:

Ошибка: Не удалось завершить выполнение задачи для ': приложение: transformClassesWithDexForRelease'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

Что мне делать, чтобы удалить эту ошибку?

+0

Вы используете функцию minify proguard? Если нет, вы все равно получите эту ошибку, если вы включите ее? – Michael

ответ

1

компиляции проекта генерировать DEX файл, Dex может обрабатывать до 65536 методов.

Ваш проект компиляции имеет более чем 65536 методов, так что вы должны улучшить зависимости или позволяют MultiDex, чтобы разделить ваш код более тны файлов

Посмотрите здесь https://developer.android.com/studio/build/multidex.html лучше подход к решению его в вашем дело.

3

Число ссылок на методы в вашем проекте составляет более 65536, что является максимальным числом, которое может существовать в одном файле dex. В этом случае, вы должны объявить заявление типа MultiDex, в следующих шагах:

1- Добавьте multidex зависимости от вашего уровня приложения build.gradle:

compile 'com.android.support:multidex:1.0.1' 

2- Включите multidex в ваших defaultConfigs в build.gradle уровня приложения:

android { 

defaultConfig { 
    ... 

    // Enabling multidex support. 
    multiDexEnabled true 
    } 
... 
} 

3- Определить новый класс MyApplication, который проходит MultidexApplication, который будет служить в качестве точки входа приложения.

public class MyApplication extends MultidexApplication 

4- Наконец, вы должны объявить этот новый класс в вашем AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="your.package.name"> 

<application 
    android:name=".path-to.MyApplication"> 
    ... 
</application> 
</manifest>