求移植android的C库(针对main函数写jni函数) 求哪位用C库成功在android下编译生成libXXX.so文件,并写jni函数成功调用的?(主要想借鉴下针对main函数写jni函数的方法)比如对C库中的例子(带main函数入口的例子如何用jni规则修改) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是不太明白int main(int argc, char* argv[])中的 char* argv[]是如何处理的 你准备在jni的模块里面放main函数?? 没试过。。有这个必要吗?? 是啊 因为要移植的代码中有int main(int argc, char* argv[]){ function1(argc, argv); function2(argc, argv, GetNalBytes_StreamType);...functionn(); }不知道参数argv用jni该如何处理?,或者说是这个main函数移植android中用jni怎样修改? [Quote=引用 4 楼 haoruifly 的回复:]引用 3 楼 cxz003 的回复:你准备在jni的模块里面放main函数?? 没试过。。有这个必要吗??是啊 因为要移植的代码中有int main(int argc, char* argv[]){ function1(argc, argv); function2(argc, argv, GetNalBytes_StreamType);...functionn(); } int main_native(int argc, char* argv[]);//申明main_native函数//Used to get the len of a java Arrayconst int getArrayLen(JNIEnv* env,jobjectArray jarray);/* * Class: com_svc_Natives * Method: mainnative * Signature: ([Ljava/lang/String;)I *///jni函数JNIEXPORT jint JNICALL Java_com_svc_Natives_mainnative(JNIEnv *env, jobject jobj, jobjectArray jarray){ jsize len = getArrayLen(env, jarray);//获取数组长度 char* args[(int)len]; int i; jstring jrow; for(i=0; i<len; i++) { //获得jobject对象,并将jobject对象向jstring对象转化 jrow = (jstring)(*env)->GetObjectArrayElement(env, jarray, i);//jarray为对象数组 //将jstring类型转化为char类型 const char* row = (*env)->GetStringUTFChars(env, jrow, 0); strcpy(args[i], row); (*env)->ReleaseStringUTFChars(env, jrow, row);//释放jni内存 } main_native(len, args);//这里调用原来的main函数 return 0;} 想用SD卡上的图片做Activity背景 android音乐播放器问题 Android怎么才能获得Boot权限??获得权限后怎么删除系统自带的软件呢? 关于android 跳转的问题 在linux下 如何把JAVA JDK从1.6降到1.5 求解如何刷新标题栏/TextView 三星 4.3系统上的Gsensor开发 Facebook SDK里 如何调用注销 方法 虚拟机多线程 Android设备和PC 可以相互ping通,但是不能Socket连接。 Cygwin,NDK编译动态库问题。 开发人人网的android应用,有经验的进
{
function1(argc, argv);
function2(argc, argv, GetNalBytes_StreamType);
...
functionn();
}不知道参数argv用jni该如何处理?,或者说是这个main函数移植android中用jni怎样修改?
int main(int argc, char* argv[])
{
function1(argc, argv);
function2(argc, argv, GetNalBytes_StreamType);
...
functionn();
}
//Used to get the len of a java Array
const int getArrayLen(JNIEnv* env,jobjectArray jarray);
/*
* Class: com_svc_Natives
* Method: mainnative
* Signature: ([Ljava/lang/String;)I
*///jni函数
JNIEXPORT jint JNICALL Java_com_svc_Natives_mainnative
(JNIEnv *env, jobject jobj, jobjectArray jarray)
{
jsize len = getArrayLen(env, jarray);//获取数组长度
char* args[(int)len];
int i;
jstring jrow;
for(i=0; i<len; i++)
{
//获得jobject对象,并将jobject对象向jstring对象转化
jrow = (jstring)(*env)->GetObjectArrayElement(env, jarray, i);//jarray为对象数组
//将jstring类型转化为char类型
const char* row = (*env)->GetStringUTFChars(env, jrow, 0);
strcpy(args[i], row);
(*env)->ReleaseStringUTFChars(env, jrow, row);//释放jni内存
} main_native(len, args);//这里调用原来的main函数 return 0;}