【问题标题】:Error: Failed to open database '/storage/emulated/0/database//db.sqlite'错误:无法打开数据库'/storage/emulated/0/database//db.sqlite'
【发布时间】:2018-04-09 00:27:19
【问题描述】:

尝试创建数据库,运行时出现此错误:Failed to open database '/storage/emulated/0/database//db.sqlite'

public class G extends Application {
    public static Context context;
    public static String Sdk_Dir= Environment.getExternalStorageDirectory().getAbsolutePath();
    public static String App_Dir=Sdk_Dir+"/database/";
    public  SQLiteDatabase database;

    @Override
    public void onCreate() {
        super.onCreate();
        context=getApplicationContext();
        File file=new File(App_Dir);
        file.mkdirs();
        if (file.exists() && !file.isDirectory()) {
            Toast.makeText(context, "error", Toast.LENGTH_SHORT).show();
        }
        database=SQLiteDatabase.openOrCreateDatabase(App_Dir+"/db.sqlite",null);
    }
}

【问题讨论】:

    标签: android database sqlite android-studio


    【解决方案1】:

    不要像这样忘记 Manifest 文件中的权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    

    【讨论】:

    • 当我想将外部 sqlite 添加到我的应用程序时,我再次出现错误,我们是否有权限??
    • @MohamadAlemi 给我看你的错误日志。否则我不能提出任何建议。
    • @MohamadAlemi 你把数据库放到 Assets 文件夹了吗?
    【解决方案2】:

    “App_Dir”和“db.sqlite”之间有两个斜线,删除一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-02
      • 1970-01-01
      • 2014-06-30
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2015-06-27
      相关资源
      最近更新 更多