搭建好百度地图的环境,问题一个接一个,针对这篇帖子的问题是
Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()
这个问题是因为 libs 里面的 so 文件没有被识别到,JNI 找不到方法,这个是为什么呢
然后我反复的看了,gradle 文件
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile files('libs/locSDK_6.13.jar') compile files('libs/baidumapapi_v3_5_0.jar') }
没看出什么问题
为什么so文件,JNI 找不到方法呢
我又对比了 百度地图demo,发现少几行代码
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
加上这个就能解决,so文件 被JNI 读取
android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.example.xlhu.hxlmapdemo" 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(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile files('libs/locSDK_6.13.jar') compile files('libs/baidumapapi_v3_5_0.jar') }
纯属个人理解,如有误,欢迎纠正。