本帖最后由 yangleibjhlxt 于 2011-09-17 14:51:17 编辑

解决方案 »

  1.   

    不是太清楚估计有可能 但是权限怎么加呢 
    要访问SdCard得在 AndroidManifest.xml 加上
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 
    可是这个对JNI本地C++函数好像不起作用。
    sqlite3_open_v2(const_cast<char*>(st2), &db, SQLITE_OPEN_READWRITE, NULL);
    sqlite3_exec(db, "insert into Word_Dict values ('yanglei','0','0','0','0')", 0, 0, &ex );
    用 Android 自己封装好的函数 
    SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
    databaseFilename, null);
    是有作用的,就可以写入数据。
      

  2.   


    FILE file;
    fopen自己创建的文件,文件拥有者是自己,当然能读能写啦!
    数据库在SdCard上面 ,(----rwxr-x)。 这个明显对其它用户只有可读可执行没有可写权限的啊!
      

  3.   

    但是我通过 FILE* file = fopen(const_cast<char*>(st2),"rb+")
    也是显示 (----rwxr-x)。还有 我要怎么获得 db文件的权限呢 ?谢谢
      

  4.   

    既然是sd,你把权限全open了试就是了
      

  5.   

          怎么 open 呢? 
            try { 
           String command = try { 
         String command = "chmod 777" + dbfile;//全部权限
         Runtime runtime = Runtime.getRuntime();
         Process proc = runtime.exec(command); 
         } 
         catch (IOException e) 
         {
         }    
            这样也不行,这个命令 "chmod 777" + dbfile 如何执行呢 
      

  6.   

    这个还真没有弄过,呵呵……JNI操作数据库还不如JAVA来,反正也是用的JNI,人家封装好了不用白不用,呵呵……不过还是可以学习学习
      

  7.   

    NDK?引用JAVA的接口再去访问SQLITE?太烦琐了吧!