我正在探索在 android 应用程序中使用 mapsfoge/graphhopper 的可能性,但无法使用 graphhopper 编译测试。
根据研究,我认为问题在于 graphhopper 和 mapsforge 中的依赖关系。
这是一个例外:
Execution failed for task ':app:dexDebug'.
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/applantation/android/svg/ParserHelper;
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:
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "com.test.maptest"
minSdkVersion 10
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'org.mapsforge:mapsforge-map-android:0.4.3'
compile 'com.graphhopper:graphhopper-android:0.3'
}
看起来问题出在 svg-android 上,它是 mapsforge-android 所依赖的。奇怪的是,如果我只使用 mapsforge-map-android,应用程序就可以正常运行。我还尝试从我的 gradle.build 文件中删除 mapsforge-map-android 行,因为 mapsforge 是通过 graphhopper 引入的,但仍然没有运气。
任何解决此问题的帮助将不胜感激!