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

原文:http://blog.csdn.net/ding_gc/article/details/52669691

[java]  view plain  copy
  1. java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.engine.JNIEngine.initClass:(Ljava/lang/Object;I)I  
  2.                              at com.baidu.platform.comjni.engine.JNIEngine.initClass(Native Method)  
  3.                              at com.baidu.platform.comjni.engine.AppEngine.InitClass(Unknown Source)  
  4.                              at com.baidu.platform.comapi.a.(Unknown Source)  
  5.                              at com.baidu.platform.comapi.c.a(Unknown Source)  
  6.                              at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)  
  7.                              at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)  


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


解决办法:

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

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

[java]  view plain  copy
  1. sourceSets {  
  2.       main() {  
  3.           jniLibs.srcDirs = ['libs']  
  4.       }  
  5.   }  
即可解决。


全部代码展示为:


[java]  view plain  copy
  1. apply plugin: 'com.android.application'  
  2.   
  3. android {  
  4.     compileSdkVersion 23  
  5.     buildToolsVersion "24.0.0"  
  6.   
  7.     defaultConfig {  
  8.         applicationId "com.niuduz.baidumap_ding"  
  9.         minSdkVersion 15  
  10.         targetSdkVersion 23  
  11.         versionCode 1  
  12.         versionName "1.0"  
  13.     }  
  14.     buildTypes {  
  15.         release {  
  16.             minifyEnabled false  
  17.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  18.         }  
  19.     }  
  20.   
  21.     /** 
  22.      * 目前 Android Studio不支持自动添加 .so文件(Eclipse是支持的),所以我们需要手动加载libs下的.so的动态库 
  23.      */  
  24.     sourceSets {  
  25.         main() {  
  26.             jniLibs.srcDirs = ['libs']  
  27.         }  
  28.     }  
  29.   
  30. }  
  31.   
  32. dependencies {  
  33.     compile fileTree(include: ['*.jar'], dir: 'libs')  
  34.     testCompile 'junit:junit:4.12'  
  35.     compile 'com.android.support:appcompat-v7:23.3.0'  
  36.     compile files('libs/baidumapapi_base_v4_0_0.jar')  
  37.     compile files('libs/baidumapapi_cloud_v4_0_0.jar')  
  38.     compile files('libs/baidumapapi_map_v4_0_0.jar')  
  39.     compile files('libs/baidumapapi_radar_v4_0_0.jar')  
  40.     compile files('libs/baidumapapi_search_v4_0_0.jar')  
  41.     compile files('libs/baidumapapi_util_v4_0_0.jar')  
  42.     compile files('libs/locSDK_6.13.jar')  
  43. }  

你可能感兴趣的:(百度地图 java.lang.UnsatisfiedLinkError 问题解决)