问题描述
- 如何把 byteArray从 Native C发送到 android app中?
-
我开发了一个 Native application 名称是 test.c,我想从 native C 文件中返回arrayofByte,也可以编译,当我运行程序时,.so
文件生成。08-28 13:04:08.477: D/dalvikvm(945): No JNI_OnLoad found in /data/data/com.ssg.nativelibtest/lib/libnativelibtest.so 0x45f3da78, skipping init
获得上面的信息后,程序也没有奔溃。所以如何解决 Nativefile的调用问题?
jbyteArray Java_com_ssg_nativelibtest_MainActivity_getEncryptionKey(JNIEnv * env, jobject obj) { unsigned char ukey[] = { 'H','A','R','D','C','O','D','E','D',' ','K','E','Y','1','2','3'}; int lengthOfArray = (*env)->GetArrayLength(env, ukey); //jsize lengthOfArray =(*env)->GetArrayLength(env, ukey); jbyteArray byteKey = (*env)->NewByteArray(env, lengthOfArray); (*env)->SetByteArrayRegion(env, byteKey, 0, lengthOfArray, (jbyte *)ukey); return byteKey; }
解决方案
Appplication中写上
System.load("your.so");
写在Application的构造方法或者静态代码块中
时间: 2024-05-17 21:31:26