Проблема с dex в Android

Привет, у кого-то эта проблема была в Вашем приложении android?

Error:The number of method references in в .dex file cannot exceed 64K. Learn how to resolve this issue at

Я прочитал в https://developer.android.com/tools/building/multidex.html, о котором говорится, но в моей разработке он не применяет ничего из этого, которое могло бросать ошибку.

Единственное, что я сделал в приложении, состояло в том, чтобы обновлять в Gradle app версию play services 8.3.0 в 10.0.1 и выполнив приложение, он посылает мне эту ошибку.

У меня нет многих методов как в индийской документации, уже я сделал то, что они предлагают, но он продолжает посылать ту же ошибку.

Я жду и смогите помогать.

2
задан 20.01.2017, 01:40
0 ответов

Error:The number of method references in в .dex file cannot exceed 64K. Learn how to resolve this issue at

Это решается давая возможность multidex с тебя build.gradle :

android {

    defaultConfig {
        ...
        ...
        multiDexEnabled = true
    } 
}

Проверь документ документации: Конфигурировать твой app для Multidex с gradle.

Файлы приложения Android (APK) содержат файлы кода выполнимых байт в форме файлов Дальвик Эксекутабле (Dex), которые содержат объектный код, использованный, чтобы выполнять твой app. Спецификация Дальвик Эксекутабле ограничивает полное количество методов, в которые возможно ссылаться в файле Dex на 65 536, включая методы framework Android, библиотеки и твоего собственного кода. В контексте информатики, термине Килограмм, K, обозначает 1024 (или 2^10). Благодаря тому, что 65 536 равен 64 X 1024, этот предел называется “пределом ссылки 64K”.

Чтобы преодолевать этот предел, ты должен конфигурировать процесс компиляции твоего app для того, чтобы он произвел более одного файла Dex, что известно как конфигурация MultiDex.


Проблема как он комментировал, что это неправильная конфигурация, должен будь быть

multiDexEnabled = true

ты написал некорректно

multiDexEnabled true

Это был бы твой файл build.gradle исправленный:

apply plugin: 'com.android.application' android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
            applicationId "com.kofh.mx.tae"
            minSdkVersion 16
            targetSdkVersion 25
            versionCode 6
            versionName "1.5"
            // Enabling multidex support.
            //multiDexEnabled true
            multiDexEnabled = true
    }
    dexOptions {
         javaMaxHeapSize "4g"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile 'com.android.support:multidex:1.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/volley.jar')
    compile files('libs/ksoap2-android-assembly-3.5.0-jar-with-dependenc‌​ies.jar')
    compile files('libs/usbsdk.jar')
    compile files('libs/jasypt-1.9.2.jar')
    compile 'com.google.android.gms:play-services:10.0.1'
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:design:25.0.0'
    compile 'com.google.firebase:firebase-core:9.6.1'
    compile 'com.google.firebase:firebase-messaging:9.6.1'
}
apply plugin: 'com.google.gms.google-services'

Обновление: появилась другая проблема, которая:

Error:UNEXPECTED TOP-LEVEL ОШИБКА: Error:java.lang. OutOfMemoryError: GC overhead limit exceeded Error:Execution failed for task

Для этого нужно распределять больше памяти следовательно конфигурируется Heap size в файле build.gradle посредством переменной javaMaxHeapSize :

  dexOptions {
         javaMaxHeapSize "4g"
    }
0
ответ дан 03.12.2019, 17:37
  • 1
    código apply plugin: ' com.android.application' android { compileSdkVersion 25 buildToolsVersion " 25.0.0" defaultConfig { applicationId " com.kofh.mx.tae" minSdkVersion 16 targetSdkVersion 25 versionCode 6 versionName " 1.5"//Enabling multidex support. multiDexEnabled true } –  20.01.2017, 20:31
  • 2
    buildTypes { будьте перечитан { minifyEnabled true proguardFiles getDefaultProguardFile (' proguard-android.txt'), ' proguard-rules.pro' } } } –  20.01.2017, 20:35
  • 3
    dependencies { я составил ' com.android.support:multidex:1.0.1' составьте fileTree (dir: ' libs' include: [' *.jar']) составьте поля (' libs/volley.jar') составьте поля (' libs/ksoap2-android-assembly-3.5.0-jar-with-dependencies.jar') составьте поля (' libs/usbsdk.jar') составьте поля (' libs/jasypt-1.9.2.jar') составьте ' com.google.android.gms:play-services:10.0.1' составьте ' com.android.support:appcompat-v7:25.0.0' составьте ' com.android.support:design:25.0.0' составьте ' com.google.firebase:firebase-core:9.6.1' –  20.01.2017, 20:37
  • 4
    составьте ' com.google.firebase:firebase-messaging:9.6.1' } apply plugin: ' com.google.gms.google-services' –  20.01.2017, 20:37
  • 5
    Извините ответы, но я не нашел способ помещать форматирование. :) –  20.01.2017, 20:41

Теги

Похожие вопросы