嗨我在android中创建sqlite数据库时遇到了一些问题.
在模拟器上一切正常,我可以创建数据库.但它不适用于实际的机器.当我尝试在手机上调试应用程序时,它无法创建数据库.
所以有人能告诉我发生了什么吗?我需要在Manifest文件中添加任何特殊权限吗?我已经尝试过ACCESS_CHECKIN_PROPERTIES或WRITE_EXTERNAL_STORAGE,但仍然无法获取数据库.
顺便说一句,自定义数据库是否只能存储在sd卡但根目录中?
非常感谢你!!
如果我从Mac调用命令
echo hello | shasum -a 256
Run Code Online (Sandbox Code Playgroud)
或者来自ubuntu
echo hello | sha256sum
Run Code Online (Sandbox Code Playgroud)
然后我得到以下结果
5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03 -
Run Code Online (Sandbox Code Playgroud)
我注意到最后有冲刺.
但是当我使用Python hashlib或Java时java.security.MessageDigest,它们会给我相同的结果如下:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Run Code Online (Sandbox Code Playgroud)
所以,有人能指出我错在哪里吗?
谢谢.
蟒蛇:
>>> import hashlib
>>> hashlib.sha256("hello").hexdigest()
Run Code Online (Sandbox Code Playgroud)
Java的:
MessageDigest md = MessageDigest.getInstance("SHA-256");
String text = "hello";
md.update(text.getBytes("UTF-8"));
byte[] digest = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < digest.length; i++) {
sb.append(String.format("%02x", digest[i] & 0xFF))
}
System.out.println(sb.toString());
Run Code Online (Sandbox Code Playgroud) 各位,我将数据库从本地资产文件夹复制到/ data/data/package_name/databases目录时遇到问题.当我使用http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ 教程来做这件事时,我只能获得一个空文件.
我引用了copyDataBase()方法的一部分并没有区别.每次应用程序启动时,它都会创建目录和空数据库.那么有什么方法可以使copyDataBase()工作吗?
非常感谢你!!