百度地图 java.lang.UnsatisfiedLinkError 问题解决

    java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.engine.JNIEngine.initClass:(Ljava/lang/Object;I)I
                                 at com.baidu.platform.comjni.engine.JNIEngine.initClass(Native Method)
                                 at com.baidu.platform.comjni.engine.AppEngine.InitClass(Unknown Source)
                                 at com.baidu.platform.comapi.a.<clinit>(Unknown Source)
                                 at com.baidu.platform.comapi.c.a(Unknown Source)
                                 at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
                                 at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)


在Android Studio集成百度地图API时,第一步就遇到了一个问题 “java.lang.UnsatisfiedLinkError” 根本也不知道如何解决,一番折腾后了解到:原来Android Studio不支持在.apk文件打包时,自动加载动态库 .so文件。


解决办法:

既然不支持自动加载,那么就需要我们手动去加载。

在工程项目中 app-->gradle中添加

  sourceSets {
        main() {
            jniLibs.srcDirs = ['libs']
        }
    }
即可解决。


全部代码展示为:


apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.niuduz.baidumap_ding"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    /**
     * 目前 Android Studio不支持自动添加 .so文件(Eclipse是支持的),所以我们需要手动加载libs下的.so的动态库
     */
    sourceSets {
        main() {
            jniLibs.srcDirs = ['libs']
        }
    }

}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile files('libs/baidumapapi_base_v4_0_0.jar')
    compile files('libs/baidumapapi_cloud_v4_0_0.jar')
    compile files('libs/baidumapapi_map_v4_0_0.jar')
    compile files('libs/baidumapapi_radar_v4_0_0.jar')
    compile files('libs/baidumapapi_search_v4_0_0.jar')
    compile files('libs/baidumapapi_util_v4_0_0.jar')
    compile files('libs/locSDK_6.13.jar')
}


猜你喜欢

转载自blog.csdn.net/ding_gc/article/details/52669691