- 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'
- }
- }
-
-
-
-
- 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')
- }