2015-12-03 3 views
2

Когда я интегрирован BoofCV в Android Studio, произошло следующее сообщение об ошибке,BoofCV Gradle строительные ошибки в Android студии

com.android.dex.DexException: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) at com.android.dx.command.dexer.Main.run(Main.java:277) at com.android.dx.command.dexer.Main.main(Main.java:245) at com.android.dx.command.Main.main(Main.java:106) Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/jdk1.8.0_60/bin/java'' finished with non-zero exit value 2

Мой файл build.gradle является

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion "23.0.2" 

defaultConfig { 
    applicationId "com.example.huayu.boofcvandroidstart" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 

    //multiDexEnabled true 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.1.1' 

compile group: 'org.boofcv', name: 'all', version: '0.20' 
} 

ответ

3

Вот как я справился с проблемой. Включите банки BoofCV, как вы изначально сделали. Затем добавьте следующее в свое приложение/build.gradle

configurations { 
    all*.exclude group: "xmlpull", module: "xmlpull" 
} 

Это удалит оскорбительный xmlpull. Вы также можете включить модуль android, который не является частью «всего».

Вот пример на BoofAndroidDemo

https://github.com/lessthanoptimal/BoofAndroidDemo/blob/master/app/build.gradle

+1

Я просто хотел поблагодарить вас за эту потрясающую библиотеку, отличную работу! –

+0

Добро пожаловать! –

0

Я использовал BoofCV в одном из мои проекты. Вы должны добавить все остальные банки BoofCV, кроме XmlPullParser, потому что эта банка конфликтует с уже существующим XmlPullParser, присутствующим в Android.

Я добавил BoofCV, загрузив все банки и только включая соответствующие из них, как это:

dependencies { 
      compile files('libs/BoofCV-android-0.19.jar') 
      compile files('libs/BoofCV-calibration-0.19.jar') 
      compile files('libs/BoofCV-feature-0.19.jar') 
      compile files('libs/BoofCV-geo-0.19.jar') 
      compile files('libs/BoofCV-io-0.19.jar') 
      compile files('libs/BoofCV-ip-0.19.jar') 
      compile files('libs/BoofCV-recognition-0.19.jar') 
      compile files('libs/BoofCV-sfm-0.19.jar') 
      compile files('libs/BoofCV-visualize-0.19.jar') 
      compile files('libs/BoofCV-xuggler-0.19.jar') 
      compile files('libs/core-0.26.jar') 
      compile files('libs/ddogleg-0.7.jar') 
      compile files('libs/georegression-0.8.jar') 
      compile files('libs/xpp3_min-1.1.4c.jar') 
      compile files('libs/xstream-1.4.7.jar') 
} 

Хотя это наивный способ добавить банки можно просто включить соответствующие банки в папке ЛИЭСА и добавить эту строку:

dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
} 
+0

Я удалил xmlpull-1.1.3.1.jar но ошибка все еще существует. Кроме того, я не знаю, почему мне нужно добавлять файлы один за другим, когда я могу использовать 'compile fileTree (dir: 'libs', include: ['* .jar'])' –

+0

Да, вам не нужно добавьте файлы по одному. Я разместил отдельные включения файлов, чтобы показать вам, какие ящики я использую, и они компилируются без каких-либо ошибок, поэтому включите только баночки, упомянутые выше в папке libs, и используйте эту строку: 'compile fileTree (dir: 'libs', include: [' * .jar ']) ' –

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

  • Нет связанных вопросов^_^