Je crée une application gps dans laquelle j'utilise Graphhopper et oscim pour afficher une carte hors ligne (l'application de démonstration de graphhopper) Maintenant, je veux ajouter une carte Mapbox pour une utilisation en ligne.Comment maintenir les dépendances de gradage spécifiques à l'intention
Le problème est que lorsque j'ajoute la dépendance, la carte hors connexion obtient et insatisfiedLinkError.
J'ajoute la dépendance suivante:
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:[email protected]'){
transitive=true
}
Le UnsatisfiedLinkError se produit lorsque vous appelez le code suivant:
mapView = new MapView(findViewById(R.id.mapFrame).getContext());
l'erreur se produit lorsque MapView.java atteint:
static {
System.loadLibrary("vtm-jni");
}
Je me demandais s'il y avait un moyen de séparer la dépendance de l'i hors ligne ntent. Sinon, quelle serait la meilleure façon de résoudre ce problème?
C'est le full`
java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-vtm-themes-0.6.0_d4ea6029b271e3632fdd2016f0824e43bdb5da7c-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-vtm-jts-0.6.0_8e3803a52cc3fa121610209e5254ed034bf66895-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-vtm-android-0.6.0_eaa608806b597a366d99fbc22fc8179bc936b092-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-vtm-0.6.0_fd38ca773ed7a50fe51ad1ccda9869bcf19c67fb-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-support-annotations-25.1.0_171a4e085c19b0851022189020c656046217703b-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slf4j-api-1.7.21_1fbbbcda9dab9dadeb23700ebd4b01906b50ae3f-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-slf4j-android-1.7.21_b34f2a4bb3bfa9b1ac33ac22d7fcb0374657f88a-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-retrofit-2.1.0_b94b8d600976dfd2ff5d67b2532623bde1cb5e9c-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-retrofit-1.9.0_65f9db5026246b2347373bb7b60ad7465faf2c70-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-okio-1.9.0_e526b97dc760791833c22bd66fc81f022dc7a2e1-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-okhttp-3.4.1_1f5f3a4c929bfa49d4eb1576ee517525e63b21be-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-okhttp-2.4.0_c031759e5c616edc45c27f6b812e2e75723e9ad3-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-mapbox-java-services-1.3.1_629a76e6e71651aa6f7136d5f15a7847744022df-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-logging-interceptor-3.3.1_bd08ce14d90716249d09bf5b41d77ba6aad8aedb-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-ln-1.1.1_5d9adb3b179087959a6f99aafe2f378babfe80d8-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-kotlin-stdlib-1.0.1_d65354731d0caa53d054fecec7c26139429586dc-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-kotlin-runtime-1.0.1_4093965dbac4d4f7c190062f33637a398a50bb5f-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-jts-1.13_7f96c6f1e3c89ebc0f15d894d32ee31bd1aa969d-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-hppc-0.7.2_6504454feae34f31f7a576176894526e8cc06c97-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-gson-2.7_de75b54aef4a1c557e4dfd8ef75b85922e39b989-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-graphhopper-core-0.9-SNAPSHOT_41321dc69b3acaf2b13a1ef67078bcd88cd9656b-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-converter-gson-2.1.0_f44d61624770995a3a71b46bfc106c176698ddc7-c
01-25 10:55:28.358 22869-22869/com.novinav.novi E/AndroidRuntime: lasses.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-commons-io-1.3.2_0794a4a04fbbe96e63821d966540acbc9c6a2fd5-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.mapzen-on-the-road-1.1.1_487b1e1827d91eb0b1afe3cc429a382629ed8c7e-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.mapbox.mapboxsdk-mapbox-android-sdk-4.2.1_3baa5fdb8d43d68ddac28d4daeac998ee98abcbd-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.google.android.gms-play-services-tasks-10.0.1_2debcb2a7b77885fd63e990d2d202d4dfceb458e-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.google.android.gms-play-services-maps-10.0.1_2eb81b4131d030c11dccc5fed22fa8dd045b0fd4-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.google.android.gms-play-services-basement-10.0.1_dfd68d63ca9416aaa4e8b448ab60854333c629bb-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.google.android.gms-play-services-base-10.0.1_3982bc26157547837dbd0aa2066b0aaf9634ed6f-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-transition-25.1.0_2df94b64a8067aeff34127bff6582828f23ffb43-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-vector-drawable-25.1.0_a852efb8652464f0976d2b2c1afb4a6e538c8fba-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-v4-25.1.0_d6e3d8477e48eecdeaaf9b8832b3c279e2609af6-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-media-compat-25.1.0_9f5b3b32b83f7dbe6d287571a5739699d85e8a41-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-fragment-25.1.0_546bd646c41fce53249a0ae8bda7fe4e26edc67c-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-core-utils-25.1.0_f7f65a8a9e6a2f52d908c1ee862d57e650ba0c83-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-core-ui-25.1.0_52ea6de4c5bbd0375f70e8d6ebc015b8ce8f9f13-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-support-compat-25.1.0_3d51e353f451195fd55d15ec9eb7246804f17989-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-recyclerview-v7-25.1.0_5ac0dea7dd9889eabfa40a7aa8db90d67d84c500-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-design-25.1.0_34ab058d60232acb74f76a257aa8717bdaba76ea-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-appcompat-v7-25.1.0_b2b37eff518f819c88fc6d87258ebedd58bb658f-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-com.android.support-animated-vector-drawable-25.1.0_bcee292d33e337afbe263714bde296803388c152-classes.dex", dex file "/data/data/com.novinav.novi/files/instant-run/dex/slice-androidsvg-1.2.2-beta-1_521a04e889332c99176ba61fd7ee1d1b48936948-classes.dex"],nativeLibraryDirectories=[/data/app/com.novinav.novi-2/lib/arm64, /data/app/com.novinav.novi-2/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]] couldn't find "libvtm-jni.so"`
Ce fichier est le gradle:
`apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "com.novinav.novi"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories{
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
testCompile 'junit:junit:4.12'
compile(group: 'com.graphhopper', name: 'graphhopper-core', version: '0.9-SNAPSHOT') {
exclude group: 'com.google.protobuf', module: 'protobuf-java'
exclude group: 'org.openstreetmap.osmosis', module: 'osmosis-osm-binary'
exclude group: 'org.apache.xmlgraphics', module: 'xmlgraphics-commons'
}
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:[email protected]'){
transitive=true
exclude group:'com.mapzen.android',module:'lost'
}
compile 'org.mapsforge:vtm:0.6.0'
compile 'org.mapsforge:vtm-android:0.6.0'
compile 'org.mapsforge:vtm-android:0.6.0:natives-armeabi'
compile 'org.mapsforge:vtm-android:0.6.0:natives-armeabi-v7a'
compile 'org.mapsforge:vtm-android:0.6.0:natives-x86'
compile 'org.mapsforge:vtm-jts:0.6.0'
compile 'org.mapsforge:vtm-themes:0.6.0'
compile 'com.caverock:androidsvg:1.2.2-beta-1'
compile 'com.vividsolutions:jts:1.13'
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'org.slf4j:slf4j-android:1.7.21'
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.google.android.gms:play-services-maps:10.0.1'
compile 'com.android.support:design:25.1.0'
compile 'com.mapzen:on-the-road:1.1.1'
}`
Ce 'MapView' vient Graphhopper? – zugaldia
Oui, c'est le MapView de l'application de démonstration de Graphhopper –
Qu'est-ce que le stacktrace? Et quand vous utilisez l'application de démonstration de ses classes, vous avez également besoin de mapsforge/vtm comme dépendance ou tout simplement vous en débarrasser si vous utilisez une alternative (oscim) – Karussell