I am building a gps application wherein I am using Graphhopper and oscim to display a map offline.(the graphhopper demo app) Now I want to add a Mapbox map for online use as well.
The problem is that when I add the dependency, the offline map gets and unsatisfiedLinkError.
I'm adding the following dependency:
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:4.2.1@aar'){
transitive=true
}
The UnsatisfiedLinkError occurs when calling the following code:
mapView = new MapView(findViewById(R.id.mapFrame).getContext());
Then the error occurs when MapView.java reaches:
static {
System.loadLibrary("vtm-jni");
}
I was wondering if there was any way to seperate the dependency from the offline intent. If not, what would be the best way to solve this problem?
This is the 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"`
This is the gradle file:
`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:4.2.1@aar'){
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'
}`