2 slaks SLaks 于 2013.08.30 13:31 提问

如何把 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;
}

1个回答

cj6585256
cj6585256   2013.08.30 17:41

Appplication中写上

System.load("your.so");
写在Application的构造方法或者静态代码块中

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!