[问题] [已解决]SQLITE读不到已存在的DB

楼主: gpctv (gpctv)   2018-06-03 02:49:26
各位前辈们,不好意思想请教大家一个问题。
自从我的Android 升级至8 oreo后,我的SQLITE DB 在
SQLiteDatabase db=dbhelper.getReadableDatabase();
这段一直会有错误。
当我试着使用adb shell的工具将DB档案删除后重开APP
又能正常,但相对地里面的资料也没了。
但如果我把DB再放回databases的资夹,他又会出现错误
讯息
错误讯息如下:https://ideone.com/HYrXeB
第71行就是 getApplicationContext().openOrCreateDatabase
当然我刚开始也有建立继承SQLiteOpenHelper 但是在getReadableDatabase()那段也
会有一样的错误讯息,故我将它注解掉了。
以下是程式码:
DB CREATE:https://ideone.com/6uaQC4
然后这个是我目前的主程式:https://ideone.com/OvOi6u
然后因为在怀疑是否为CreatDB有问题,所以目前将CreatDB 注解掉,但还是有相同问
题。
然后我找过文章,也有人说可能是权限问题,所以我试着将读写EXTERNAL_STORAGE的权限
打开
以下是AndroidManifest.xml https://ideone.com/brPDHf
但还是一样的错误讯息。
在stackoverflow 也有人说使用路径,所以我也曾试过SQLiteDatabase.openDatabase去
直接带路径开启,但一样有误。
所以我已经不知道还有什么办法。
之前从kitkat升级到lollipop再到Nougat都没问题,但是这次无论我怎么试还是弄不好。
再有劳各位高手。
作者: evo1994 (Evo)   2018-06-03 21:44:00
请问一下你的query方法大概是要做什么咧,而且你db好像不是储存在sd卡的样子,close的方法也怪怪的@@
楼主: gpctv (gpctv)   2018-06-03 22:40:00
Hi evo 你好,query只是单纯回传资料后塞到listview,之前都是正常,但升级后一直错在getReadableDatabase那段
作者: zerofinal (人生~)   2018-06-06 13:31:00
看了一下写法,和我的不太一样,我是直接参考官网https://goo.gl/X875UB
楼主: gpctv (gpctv)   2018-06-06 20:28:00
Hi zero 大,感谢你,但我刚刚试了一下,无论怎么改在mDbHelper.getWritableDatabase();那行都会有错误讯息!用read也会有https://ideone.com/HYrXeB有空再来使用存在assets folder的方法好了!!https://stackoverflow.com/questions/9109438/how-to-use-an-existing-database-with-an-android-application
作者: acoimfjn1b (acoimfjn1b)   2018-06-07 12:42:00
db档单独拿出来可以正常读取吗?
楼主: gpctv (gpctv)   2018-06-07 13:10:00
可以。我在猜会不会是owner的问题!!所以想用上面的方法试试

Links booklink

Contact Us: admin [ a t ] ucptt.com