Android Studio: почему я получаю ошибку multi dex в новом проекте Google Maps API?
Я относительно новичок в программировании на Android и пытаюсь создать проект Google Maps. Я использовал опцию шаблона в Android Studio,и я добавил ключ для API.
Я не добавил свой собственный код и оставил код шаблона как есть, потому что я просто хотел запустить код и посмотреть, как он выглядит, однако, я продолжаю получать ошибку multi dex, когда я пытаюсь запустить это на эмуляторе, вызывая сбой сборки. Мне странно, что я получаю эту ошибку, потому что у меня ее нет. добавлены кода на всех и я с помощью шаблона Карты Google с Android студия.
Кто-нибудь знает, почему эта ошибка появляется в совершенно новом проекте? Ошибка, которую я вижу, вставлена ниже.
Ошибка: число ссылок на метод в a .размер файла dex не может превышать 64 КБ. Узнайте, как решить эту проблему в https://developer.android.com/tools/building/multidex.html
Ошибка: не удалось выполнить задачу': app: transformClassesWithDexForDebug'.
Com.андроид.строить.прикладной программный интерфейс.преобразиться.TransformException: com.андроид.интегрированная среда разработки.общий.процесс.ProcessException: java.утиль.параллельный.ExecutionException: com.андроид.интегрированная среда разработки.общий.процесс.ProcessException: org.градля.процесс.внутренний.ExecException: процесс "команда" C:Program файлыпапку Javajdk1.8.0_91бинЯва.exe " закончено с ненулевым значением выхода 2
6 ответов:
Как указано ниже:
Вероятно, вы компилируете все API play-services с помощью compile ' com.гугл.андроид.gms: play-services: 9.2.0'... Теперь мы можем выборочно компиляции API, чтобы избежать ограничения Декс 64К. Для карты Google использовать com.гугл.андроид.gms: play-services-maps: 9.2.0... - Локи 1 июля в 19: 01
Ответ от Локи сработал и был очень прост в исполнении.
Настройка сервисов google play
Перейдите по этой ссылке, просто добавьте зависимости, которые вы хотите в своем приложении. Это предотвратит ошибку превышения 64k.
Счастливое кодирование.
Проблема в том, что в настоящее время у вас есть большое количество методов. Существует только 65536 методов для dex. Вы можете попробовать включить multiDex, отредактировав свою сборку.файл Gradle.
android { //stuff defaultConfig { ... // Enable multiDex support. multiDexEnabled true } } dependencies { compile 'com.android.support:multidex:1.0.0' }
Кроме того, oops как постер, упомянутый выше в вашем манифесте, вам также нужно добавить, что вы используете класс multidex из библиотеки поддержки multidex.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.dexapp"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application>
Измените конфигурацию сборки Gradle, чтобы включить multidex
android { compileSdkVersion 23 buildToolsVersion "24.0.0 rc2" defaultConfig { applicationId "com.try.app" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true }
В манифесте добавьте класс MultiDexApplication из библиотеки поддержки multidex в элемент application.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest>
Примечание: посещение https://developer.android.com/studio/build/multidex.html для получения дополнительной информации.
Задайте свойству multiDexEnabled значение true в defaultConfig. Эта ошибка возникает, когда ссылки на методы увеличивают предел 65k. Проверьте API сервиса Google Play.
android{ ... defaultConfig { ... multiDexEnabled true } ... }
Вот хороший источник, чтобы начать работу с Google Maps Android API