android.database.sqlite.SQLiteCantOpenDatabaseException。在一个类中工作正常,但在另一个类中抛出错误

时间:2017-05-25 00:19:07

标签: android sqlite

我在堆栈溢出中经历了很多答案,但没有任何帮助。我的应用程序通过Web服务从SQL服务器获取数据并写入本地sqlite数据库。我可以确认这会拉动并存储数据。我的下一步是使用分页显示前十行,并在用户向下滚动时加载更多。

我有一个代表sqlite记录数据的类。我有一个函数createRuns()来获取前10个记录

公共类运行{

let username = "ImAlgo";

let url = `http://skins.minecraft.net/MinecraftSkins/${username}.png`;

let query = `https://query.yahooapis.com/v1/public/yql?q=select * from data.uri where url="${url}"&format=json&callback=`;

let a = document.createElement("a");

a.download = `${username}.png`;

fetch(query).then(response => response.json())
.then(({query:{results:{url}}}) => {
  a.href = url;
  document.body.appendChild(a);
  a.click();
})
.catch(err => console.log(err));

我附上了错误消息的屏幕截图。

http://imgur.com/a/nmXbl

如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

问题可能来自以下代码:

database=openDatabase("DriverPortalDB", null, Context.MODE.Private);

第一个参数应该是路径,而不仅仅是数据库名称,第二个问题是 Context.MODE。私有第二个参数不是指定的标志之一(它可能与指定标志的值相关,也可能不相关)。指定的标志是: -

  • OPEN_READWRITE
  • OPEN_READONLY
  • CREATE_IF_NECESSARY
  • 和/或 NO_LOCALIZED_COLLATORS

SQLiteDatabase public final class SQLiteDatabase