2017-02-08 19 views
0

Я создал новый проект Android-студия с MapsActivity, если я пытаюсь запустить приложение на устройстве Huawei P8 Lite появляется эта ошибка:Как я могу решить эту ошибку? Метод ID не в [0, 0xFFFF]: 65536

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> 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 

моей сборки .Gradle (Module: app):

apply plugin: 'com.android.application' 

    android { 
     compileSdkVersion 25 
     buildToolsVersion "24.0.2" 
     defaultConfig { 
      applicationId "com.example.de.maptestdel" 
      minSdkVersion 15 
      targetSdkVersion 25 
      versionCode 1 
      versionName "1.0" 
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     } 
     buildTypes { 
      release { 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 
    } 

    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
      exclude group: 'com.android.support', module: 'support-annotations' 
     }) 
     compile 'com.android.support:appcompat-v7:25.1.0' 
     compile 'com.google.android.gms:play-services:10.0.1' 
     compile 'com.android.support:design:25.1.0' 
     testCompile 'junit:junit:4.12' 
    } 

Есть ли другой способ решить проблему, за исключением включения Multidex? Я слышал, что это не так хорошо, чтобы активировать его.

< Благодаря 3 и извините за мой плохой английский: P

Keep Coding

Аарон

+0

Первый ответ имеет очень много контактов, указывающих на вашу проблему. На данный момент это должно решить проблему. Но всегда есть вероятность, что с добавлением большего количества функций вы снова столкнетесь с проблемой. В основном, проблема связана с тем, что ограничение на количество методов, разрешенных для файла dex, ограничено. Поэтому в случае, если вы столкнетесь с проблемой когда-нибудь позже, Google за слова «Android Multidex». Android имеет возможность разделить APK на несколько файлов dex – Dibzmania

+0

http://stackoverflow.com/questions/36785014/the-number-of-method-references-in-a-dex-file-cannot-exceed-64k-api -17/36786721 # 36786721 –

ответ

2

Используйте конкретный/отдельный API от Google Play библиотеки служб. Вы использовали compile 'com.google.android.gms:play-services:10.0.1' и эта библиотека подсчета метод 79958.

См ссылке: https://developers.google.com/android/guides/setup

В версиях Google Play службы до 6.5, нужно было собрать весь пакет API-интерфейсов в приложение. В некоторых случаях это затрудняло сохранение количества методов в вашем приложении (включая интерфейсные API, библиотечные методы и собственный код) в соответствии с лимитом 65 536.

С версии 6.5 вы можете выборочно скомпилировать API-интерфейс Google Play в свое приложение.

Для примера.

Для Google Maps, использование: подсчитывать

com.google.android.gms:play-services-maps:10.0.1 

метод: 17984

для Google Cloud Messaging:

com.google.android.gms:play-services-gcm:10.0.1 

Количество метод: 15784

Таким образом, используя индивидуальный API уменьшит количество методов apk. Тогда нет необходимости включать multidex.

+0

Это помогло мне, спасибо <3 –

+0

Спасибо, миллион! Спасло меня от беспорядка с материалом multidex. – iSofia