2017-01-24 2 views
1

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' 


}` 
+0

Ce 'MapView' vient Graphhopper? – zugaldia

+0

Oui, c'est le MapView de l'application de démonstration de Graphhopper –

+0

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

Répondre

0
  1. ouvrir le parent-VTM et copier les VTM-android/indigènes dans votre projet .
  2. ajouter un code folowing dans build.gradle
android { 
...  
    sourceSets { 
     main { 
      file("natives").eachDir() { dir -> 
       jniLibs.srcDirs += "${dir.path}/lib" 
      } 
     } 
    } 
}