这个错误出现后,认为是jstring的分配出了问题,经检查,发现没事, 只有string为空时,等它释放时才会出现,只好改stl的链接方式,在build.gradle里面的cmake中增加
arguments "-DANDROID_STL=gnustl_shared"
defaultConfig { applicationId "com.example.fosky.jjl" minSdkVersion 21 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "-frtti -fexceptions -std=c++11 -llog" arguments "-DANDROID_STL=gnustl_shared" // 这里是新增加的一行,使用动态库链接 } } }
重新编译后,问题解决。
参数设置方法:
https://developer.android.com/ndk/guides/cmake.html#variables
https://developer.android.com/ndk/guides/cpp-support.html#hr