из-за высокоприоритетного исправления безопасности в кордове для Android. Мы должны обновить нашу версию cordova (от 2.7.0 до 3.6.3) в нашем приложение. Поэтому мы подумали, что было бы лучше создать новый проект.
Я установил кордову и создаю проект с cordova cli api. Также я добавил, что платформа Android добавила много плагинов cordova. Затем я скопировал наш материал sencha touch в папку www.
Затем я позвонил cordova build android
.
После этого я импортировал этот проект Android в Android Studio (0.8.11).
Для нашего приложения мне нужно скопировать следующие вещи из нашего старого проекта
- AndroidManifest.xml
- Все вещи из Рез/каталога
- в SRC/каталога я добавил что нам нужно в нашем приложении
В наших собственных файлах java (каталог src /) все было красным. Итак, мы выяснили, что в src/org.apache.cordova/
было только каталоги установленных плагинов cordova. Поэтому я загрузил кордову 3.6.X (от https://github.com/apache/cordova-android/tree/3.6.x) и скопировал все java-файлы в src/org/apache/cordava.
Тогда я узнал, что в библиотеке lib/отсутствует библиотека поддержки android-support-v13.jar
. Поэтому я скопировал его из каталога sdk\extras\android\support\v13
. После этого почти все красные вещи в коде исчезли, поэтому я попытался запустить его.
Но я получаю эту ошибку:
Error:Execution failed for task ':dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
C:\Develop\Android SDK\sdk\build-tools\19.1.0\dx.bat --dex --output D:\www\xxx\native\cordova-project\platforms\android\build\intermediates\dex\debug D:\www\DiLocSyncMobile\native\cordova-project\platforms\android\build\intermediates\classes\debug D:\www\xxx\native\cordova-project\platforms\android\build\intermediates\dependency-cache\debug D:\www\xxx\native\cordova-project\platforms\android\build\intermediates\pre-dexed\debug\android-support-v13-ba93a882b9b887c9c56ff93adba54cb3616bd827.jar D:\www\xxx\native\cordova-project\platforms\android\build\intermediates\pre-dexed\debug\classes-0236632443c0351e54fca9912536c8c02b5ad2b2.jar
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/App$1;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
Мой build.gradle
файл имеет следующие зависимости:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
for (subproject in getProjectList()) {
compile project(subproject)
}
}
В моем Lib каталоге/это только баночка я добавил вручную.
Пожалуйста, помогите мне/Спасибо заранее! :-)
Проверьте: http://stackoverflow.com/questions/22315834/android-unable-to-execute-dex-multiple-dex-files-define или http://stackoverflow.com/questions/7870265/unable-to -execute-dex-multiple-dex-files-define-lcom-myapp-rarray –
Проверьте эту ошибку, потому что вы получаете ссылку на одну вещь из более чем одной банки. – khurram
Спасибо, я выяснил, в чем была моя проблема: это было потому, что я скопировал файлы java cordova в src/com/apache/cordova/... Они уже существуют в/CordovaLib/... Нет, приложение скомпилировано, но Я все время ошибаюсь: «Кордова exec fail: Class not found», и в моих java-файлах у меня есть такие ошибки, как «Не удается разрешить символ CordovaPlugin» – mbo