2015-03-27 3 views
3

Во второй раз я решил попробовать Android Studio. Итак, я импортировал проект, который использует библиотеки POI Apache и другие. Это моя зависимость:Невозможно запустить проект Android Studio с библиотеками POI Apache

compile 'com.google.http-client:google-http-client-gson:1.19.0' 
compile 'com.google.code.gson:gson:2.1' 
compile 'com.android.support:appcompat-v7:19.1.0' 
compile 'com.google.android.gms:play-services:+' 
compile files('libs/commons-codec-1.9.jar') 
compile files('libs/commons-logging-1.1.3.jar') 
compile files('libs/google-api-client-1.16.0-rc.jar') 
compile files('libs/google-api-client-android-1.16.0-rc.jar') 
compile files('libs/google-api-services-drive-v2-rev111-1.16.0-rc.jar') 
compile files('libs/google-http-client-1.16.0-rc.jar') 
compile files('libs/google-http-client-android-1.16.0-rc.jar') 
compile files('libs/google-http-client-jackson-1.16.0-rc.jar') 
compile files('libs/google-http-client-jackson2-1.16.0-rc.jar') 
compile files('libs/google-oauth-client-1.16.0-rc.jar') 
compile files('libs/jackson-core-2.1.3.jar') 
compile files('libs/jsr305-1.3.9.jar') 
compile files('libs/log4j-1.2.17.jar') 
compile files('libs/poi-3.11-20141221.jar') 

Когда я пытаюсь запустить, у меня есть эта ошибка:

04:27:59.765 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 
04:27:59.766 [ERROR] [org.gradle.BuildExceptionReporter] 
04:27:59.767 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 
04:27:59.768 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':app:dexDebug'. 
04:27:59.769 [ERROR] [org.gradle.BuildExceptionReporter] > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_75\bin\java.exe'' finished with non-zero exit value 2 

При компиляции с --stacktrace --info --debug, я получаю это:

04:27:59.754 [ERROR] [org.gradle.api.Project] 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/google/api/client/util/StreamingContent;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Lcom/google/api/client/util/StreamingContent;"} 

Я заметил, что когда я удаляю poi-3.11-20141221.jar, все работает нормально.

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

Так что мой вопрос: Что я должен сделать, чтобы мой проект работал в Android Studio с POI-библиотеками?

Спасибо

ответ

4

Я понимаю !!!

Я понимаю, что проблема заключалась в использовании Apache POI, google drive и сервисных библиотек Google Play в том же проекте. Все эти библиотеки вводят слишком много методов в моем проекте.

Чтобы избежать ошибки компиляции, я просто включить multiDex в нарастании Gradle:

defaultConfig { 
    multiDexEnabled = true 
} 

И это работает! Так что теперь счастлив :)

Я нашел решение здесь: Unable to execute dex: method ID not in [0, 0xffff]: 65536

+0

Это имеет смысл. Библиотека apache apache невероятно огромна по количеству файлов. Неудивительно, что для этого нужен специальный флаг. Заставляет меня задаться вопросом, должен ли я использовать такой инструмент для синтаксического анализа XML-листа. – StarWind0

+0

У вас возникли какие-либо проблемы с apache POI на Android? Я думаю об использовании этого, но я не уверен, что все в порядке со всеми старыми устройствами Android. – Jenix

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