我有一个使用JNI的android项目。在abiFilters = arm64-v8a上运行时可以很好地工作,但是在abiFilters = armeabi上崩溃了,我不知道出了什么问题,有人可以给我个主意吗?
我的ndk配置:
minSdkVersion =21
APP_ABI := armeabi
APP_CPPFLAGS += -fexceptions -frtti
APP_STL := stlport_shared
NDK:android-ndk-r16b
这是发生错误的主要代码:
private native String nativeJFSign(long security, String data, String user);
jstring Java_com_ibestfin_app_android_JFSecurity_nativeJFSign
(JNIEnv *env, jobject thiz, JFSecurity *s, jstring payload, jstring user) {
const char *p_data = env->GetStringUTFChars(payload, NULL);
const char *p_user = env->GetStringUTFChars(user, NULL);
char *outstr = s->jfSign(p_data, p_user);
jstring result = env->NewStringUTF(outstr);
//当outstr为空字串和NULL时候不需要释放内存。
if ((outstr != NULL) && (strcmp(outstr, "") != 0)) {
delete outstr;
outstr = NULL;
}
return result;
}
由于受空间的限制,我无法将完整的日志写入此处, 完整的崩溃日志请点击此处:https://pastebin.com/ahzLAUgm