2023-01-20 264
嗨,我想通过NDK保护我的Web URL和应用程序秘密键创建hashmap 也 jni将对象从C ++传递到Java 从上面的链接中弃用了某些方法,但没有找到任何方法,我创建了HashMap,但是它给了我错误
#include <jni.h>
extern "C"
JNIEXPORT jobject
Java_com_company_project_home_ui_MainActivity_getUrlMap(
JNIEnv *env,
jobject /* this */) {
jclass mapClass = env->FindClass("java/util/HashMap");
if(mapClass == NULL)
{
return NULL;
}
jsize map_len = 1;
jmethodID init = env->GetMethodID(mapClass, "<init>", "(I)V");
jobject hashMap = env->NewObject(mapClass, init, map_len);
jmethodID put = env->GetMethodID(mapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
char *key = (char*)"URL_TEST_API" ;
char *val = (char*)"home.php";
env->CallObjectMethod(hashMap, put, key, val);
return hashMap;
}
错误
A/art: art/runtime/java_vm_ext.cc:410] native: #12 pc 00dd8f2f /data/app/com.company.project-1/oat/arm/base.odex (void com.company.project.home.ui.MainActivity.onCreate(android.os.Bundle)+714)
我解决了我的问题,我在代码中发现的主要问题是我错过了 jnicall line,作为钥匙和val是无效的因此,我通过@michael在上面的答案中提到的Chike通过C更改为Java字符串,现在代码在修改后正常工作也可以更改()
#include <jni.h>
extern "C"
JNIEXPORT jobject
JNICALL
Java_com_company_project_somePackage_SplashScreen_getHashMap(JNIEnv *env, jobject /* this */) {
jclass mapClass = env->FindClass("java/util/HashMap");
if(mapClass == NULL)
{
return NULL;
}
jsize map_len = 1;
jmethodID init = env->GetMethodID(mapClass, "<init>", "(I)V");
jobject hashMap = env->NewObject(mapClass, init, map_len);
jmethodID put = env->GetMethodID(mapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
jenv->CallObjectMethod(hashMap, put, env->NewStringUTF("URL_TEST_API"), env->NewStringUTF("home.php"));
return hashMap;
}
key和val不是HashMap.put的有效参数.您需要从c字符串中创建Java字符串,例如使用 NewStringUTF NewStringUTF .
以上所述是小编给大家介绍的如何通过JNI创建HashMap<String, String>,然后解析到java?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26109.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态