2015-12-24 3 views
2

Вчера, когда я пытался отладить мое приложение и запустить его на устройстве, то Gradle консоль начала показывать эту ошибку сразу после :mobile:dexDebug:Android Studio dexDebug ошибки отладки приложения

AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} 
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Lcom/parse/ParseFacebookUtils;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Lcom/parse/ParseFacebookUtils;"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:277)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:277)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:245)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:245)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"} 


FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':mobile:dexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_11\bin\java.exe'' finished with non-zero exit value 2 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

Я Мы провели небольшое исследование здесь и, похоже, связаны с зависимостями в файле build.gradle. Все мои SDK обновлены.

build.gradle (модуль: мобильный):

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.0' 

    defaultConfig { 
     applicationId "com.intap.tof" 
     minSdkVersion 14 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

repositories { mavenCentral() } 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    wearApp project(':wear') 
    compile 'com.parse:parse-android:1.+' 
    compile fileTree(include: 'achartengine-1.1.0.jar', dir: 'libs') 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.google.android.gms:play-services:7.8.0' 
    compile 'com.parse.bolts:bolts-android:1.+' 
    compile 'com.facebook.android:facebook-android-sdk:4.0.0' 
    compile 'com.android.support:cardview-v7:23.0.1' 
    compile 'com.android.support:design:23.0.1' 
    compile 'com.jjoe64:graphview:4.0.1' 
} 

ответ

0

Я решил проблему!
Я переключился на Parse SDK 1.9.3, и внезапно он работает!

В любом случае, спасибо, ребята, за то, что вы помогли мне с вопросом.Очень полезно.

4

com.android.dex.DexException: Несколько DEX файлы определяют Lcom/синтаксического анализа/ParseFacebookUtils;», "позиция": {}, "оригинальные": "com.android.dex.DexException: Несколько DEX файлы определяют Lcom/синтаксический анализ/ParseFacebookUtils;"}

в первом Добавить в вашем build.gradle разделе

01.
  1. Set buildToolsVersion '23.0.1'
  2. набор compile 'com.parse.bolts:bolts-android:1.2.1'

  3. набор compile 'com.parse:parse-android:1.11.0'

  4. Изменить ваш Gradle построить конфигурацию, чтобы включить multidex

  5. Гладко Rebuild-Sync

Измените конфигурацию файла конфигурации Gradle, чтобы включить библиотеку поддержки и включить вывод multidex.

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.1' 

    defaultConfig { 
     ... 
     minSdkVersion 14 
     targetSdkVersion 23 
     ... 

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

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

Для получения дополнительной информации, пожалуйста прочитайте DexException

https://developer.android.com/intl/es/tools/building/multidex.html

1

Вы получаете это исключение, потому что приложение достигло предела методов 64k. Таким образом, вы можете включить multidex в своем приложении, как правильно предложено в других ответах. Но включение multidex увеличивает время сборки, и во многих случаях это не является предпочтительным.

Итак, я предлагаю вам использовать разные файлы proguard для отладки и выпуска версий (в отладочной версии не обфускации переменных и имен классов). Proguard в большинстве случаев поможет преодолеть это исключение. Если это не сработает, вам придется использовать multidex.

Смежные вопросы