我想用C本地库读写sdcard下的aa.txt,已经建好了,可是用C编写的代码读写的时候总是不成功,代码如下(本地库的)Java_oo_oo_kkk_stringFromJNI( JNIEnv* env,
jobject thiz )
{
LOGI("MyJNI is called!");
int fd,size;
char s[]="11111",buffer[50];
fd=open(path,O_RDWR|O_CREAT);
LOGI("输出到了这个点B");
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件打开失败");
}
write(fd,s,sizeof(s));
close(fd);
fd=open(path,O_RDONLY);
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件读出失败");
}
size=read(fd,buffer,sizeof(buffer));
close(fd);
LOGI(buffer);
LOGI("输出到了这个点C");
return (*env)->NewStringUTF(env,buffer);
}
请教做过的,有过经历的同学帮帮忙。QQ1053155108,晨听雨
jobject thiz )
{
LOGI("MyJNI is called!");
int fd,size;
char s[]="11111",buffer[50];
fd=open(path,O_RDWR|O_CREAT);
LOGI("输出到了这个点B");
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件打开失败");
}
write(fd,s,sizeof(s));
close(fd);
fd=open(path,O_RDONLY);
if(fd==NULL)
{
return (*env)->NewStringUTF(env, "文件读出失败");
}
size=read(fd,buffer,sizeof(buffer));
close(fd);
LOGI(buffer);
LOGI("输出到了这个点C");
return (*env)->NewStringUTF(env,buffer);
}
请教做过的,有过经历的同学帮帮忙。QQ1053155108,晨听雨
解决方案 »
- Running Services 查看用50M 内存 .生成hprof 用mat 分析.Total只有6.5M
- 请问各位都是如何绘制android的layout view的?
- 如何保存已发送的短信到发件箱中?
- android 模拟器不能加载 SoundPool
- 请问asp.net转android开发容易吗?
- android webview 播放视频(网上搜不到的问题)
- 最近在做锁屏应用,可以Home键不会屏蔽啊
- 用JAVA代码实现LinearLayout布局并设置背景出现问题
- 求大神帮忙看下错误点android.view.WindowManager$BadTokenException
- Android第三方消息推送
- 有关于Android USB HOST模式的疑问,希望高手释疑
- 如何设置MediaPlayer视频的控制次数循环播放
我用的是fd=fopen(path,"rw");读写权限,成功读出sdcard/aa.txt里的内容,现在遇到一个困难,就是如何将java中的string参数传到C中变成char数组,就是string->jstring->char[],求一个代码例子,至于我这个例子,现将成功调试过得代码奉上
const char *path = "/sdcard/ee.txt";
jstring
Java_com_test_JNITest_stringFromJNI( JNIEnv* env,
jobject thiz )
{
LOGI("MyJNI is called!");
int size;
FILE *fd;
char a='b';
char s[]="111111111",buffer[16];
memset(buffer,0,16);
fd=fopen(path,"rw");
if(fd<0)
{
return (*env)->NewStringUTF(env, "444444444");
}
size=fread(buffer,sizeof(char),15,fd);
fclose(fd);
LOGI("0000000000000000000");
LOGI(buffer);
return (*env)->NewStringUTF(env, buffer);
}
jstring和char*的转换,自己看看吧。