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

  • Post author:
  • Post category:java


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



  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.<clinit>(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中添加






  1. sourceSets {


  2. main() {

  3. jniLibs.srcDirs = [

    ‘libs’


    ]


  4. }

  5. }



即可解决。






全部代码展示为:








  1. apply plugin:


    ‘com.android.application’





  2. android {

  3. compileSdkVersion

    23




  4. buildToolsVersion

    “24.0.0”





  5. defaultConfig {

  6. applicationId

    “com.niuduz.baidumap_ding”




  7. minSdkVersion

    15




  8. targetSdkVersion

    23




  9. versionCode

    1




  10. versionName

    “1.0”




  11. }

  12. buildTypes {

  13. release {

  14. minifyEnabled

    false




  15. proguardFiles getDefaultProguardFile(

    ‘proguard-android.txt’


    ),


    ‘proguard-rules.pro’




  16. }

  17. }



  18. /**



  19. * 目前 Android Studio不支持自动添加 .so文件(Eclipse是支持的),所以我们需要手动加载libs下的.so的动态库



  20. */




  21. sourceSets {

  22. main() {

  23. jniLibs.srcDirs = [

    ‘libs’


    ]


  24. }

  25. }


  26. }


  27. dependencies {

  28. compile fileTree(include: [

    ‘*.jar’


    ], dir:


    ‘libs’


    )


  29. testCompile

    ‘junit:junit:4.12’




  30. compile

    ‘com.android.support:appcompat-v7:23.3.0’




  31. compile files(

    ‘libs/baidumapapi_base_v4_0_0.jar’


    )


  32. compile files(

    ‘libs/baidumapapi_cloud_v4_0_0.jar’


    )


  33. compile files(

    ‘libs/baidumapapi_map_v4_0_0.jar’


    )


  34. compile files(

    ‘libs/baidumapapi_radar_v4_0_0.jar’


    )


  35. compile files(

    ‘libs/baidumapapi_search_v4_0_0.jar’


    )


  36. compile files(

    ‘libs/baidumapapi_util_v4_0_0.jar’


    )


  37. compile files(

    ‘libs/locSDK_6.13.jar’


    )


  38. }