在学习和使用Android SQLite操作的时候碰到一个错误:无法打开文件
10-11 15:00:44.374: E/SQLiteDatabase(18129): Failed to open database '/data/data/com.example.briefvideo/files/com.briefvideo.db/databases/video.db'. 我的源代码(Android 版本 17):
public  static String DATA_BASE_PATH = context.getApplicationInfo().dataDir+"/databases/video.db";SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(DATA_BASE_PATH,null);
导致这个错误的原因有很多,我的原因是 “文件夹不存在” 修改后代码如下
public  static String DATA_BASE_PATH = context.getApplicationInfo().dataDir+"/databases/video.db";  File f_=new File(DATA_PATH);         if(!f_.getParentFile().exists()){         Log.e("DBService", "文件夹不存在,新建一个");         f_.getParentFile().mkdirs();        }
通过查询资料发现还有一些其他原因导致这个问题 (1)版本问题,需要修改成
  if(android.os.Build.VERSION.SDK_INT >= 4.2){         DATA_PATH= context.getApplicationInfo().dataDir+"/databases/video.db";            } else {         DATA_PATH="/data/data/"+ApplicationUtil.getcontext().getPackageName()+"/databases/video.db";  }            SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(DATA_BASE_PATH,null);
(2)包名错误
 DATA_PATH="/data/data/"+ApplicationUtil.getcontext().getPackageName()+"/databases/video.db";

如果大家发现其他原因和解决方法的欢迎共享.

更多相关文章

  1. Android Studio的Gradle错误解决方法
  2. Android NDK常见错误解决方案
  3. Android Permission denied 错误
  4. Android集成银联支付,提示java.lang.UnsatisfieldLinkError错误
  5. android修改Zxing源码,避免出现错误信息
  6. Android Studio 3.1.1新版本 修改 compileSdkVersion sdk版本的
  7. android webview 加载进度和自定义404错误页面
  8. android编译错误
  9. android 源代码错误

随机推荐

  1. 从Java类加载初始化到Android热修复
  2. android sqlite数据库的增删改查
  3. Android(安卓)音频播放速率调整实现
  4. Android 数据存储三种方式
  5. Android使用WebView.loadUri()打开网页的
  6. Android编程开发录音和播放录音简单示例
  7. android之Pull解析XML
  8. Android实现记事本小功能
  9. 小白的App开发日志-使用Kotlin开发App -
  10. Android Client and PHP Server