首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android:从资产文件夹复制数据库,但只得到一个空文件

Android:从资产文件夹复制数据库,但只得到一个空文件
EN

Stack Overflow用户
提问于 2011-05-25 06:31:24
回答 4查看 11.6K关注 0票数 7

伙计们,在将数据库从本地资产文件夹复制到/data/data/package_name/databases目录时,我遇到了问题。当我使用http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/教程来做这件事时,我只能得到一个空文件。

我引用了copyDataBase()方法的一部分,没有区别。每次应用程序启动时,它都会创建目录和空数据库。那么有没有办法让copyDataBase()起作用呢?

非常感谢!

EN

回答 4

Stack Overflow用户

发布于 2011-06-30 20:59:00

为什么你不从资产中复制?这样做是非常正常的。但您不能在onCreate中执行此操作,此时已经创建了一个空数据库。你需要事先做好。我通常在getWriteableDatabase的重写中这样做,比如

代码语言:javascript
运行
AI代码解释
复制
public synchronized SQLiteDatabase getWritableDatabase() {
    SQLiteDatabase db = null;

    if (!doesDatabaseExist()) {
        try {
            copyDatabase();
            db = super.getWritableDatabase();
        } catch(Exception ex) {
            Log.e("Database Log", getDatabasePath() + " failed to copy correctly. " + ex.getLocalizedMessage());
        }
    }
    else {
        db = super.getWritableDatabase();
    }

    return db;
}
票数 15
EN

Stack Overflow用户

发布于 2013-07-20 23:44:44

我不知道它是否仍然有用,但这里是其他人看到awnser的解决方案。您使用的代码适用于大多数手机,一些较旧的手机在getReadableDatabase()函数中有不同的行为。因此,您的问题不在于copyDataBase函数,而在于createDataBase函数。

在createDataBase()中,有以下检查;

代码语言:javascript
运行
AI代码解释
复制
this.getReadableDatabase();

这将检查是否已经存在具有所提供名称的数据库,如果没有,则创建一个空数据库,以便可以用assets文件夹中的数据库覆盖该数据库。在较新的设备上,这可以完美地工作,但也有一些设备不能工作。主要是较旧的设备。我不知道确切的原因,但似乎getReadableDatabase()函数不仅获取数据库,而且还打开它。如果您随后将数据库从assets文件夹复制到它上面,它仍然具有指向空数据库的指针,并且您将得到table does exist错误。

因此,为了使它在所有设备上都能工作,您应该将其修改为以下几行:

代码语言:javascript
运行
AI代码解释
复制
SQLiteDatabase db = this.getReadableDatabase();
if (db.isOpen()){
    db.close();
}

即使在检查中打开了数据库,之后它也会关闭,不会再给您带来任何麻烦。

票数 1
EN

Stack Overflow用户

发布于 2012-07-21 17:40:26

在上面的示例中,我是这样工作的:

代码语言:javascript
运行
AI代码解释
复制
db = super.getWritableDatabase();
db.close;
copyDatabase();

否则我会得到一个IO错误;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6120424

复制
相关文章
如何放置友情链接
对于友情链接,首先我们不会在意你网站的 PR 值和 Alexa 排名,如果你在意这两个值,那么请你不要和我们交换链接,因为我们博客的 PR 值为0,Alexa 排名为1百多万名,流量也很低,和我们交换链接不会给你带去任何好处。虽然我们各项的值都很低,但是我们还是有我们自己的交换友情链接的原则,嘿嘿,第一 只要你的网站是博客并且也是基于 WordPress 的,第二是你的网站内容是我们喜欢的(具体什么是我们喜欢的呢?恩,就是我们喜欢,看你的运气了。)。如果你达到以上要求,呵呵,那么你来交换链接,基本 都可以的,但是希望你先加上啊!
Denis
2023/04/13
8220
标签链接
百度一下 淘宝网 京东网 <html> <head> <title></title> <meta charset="UTF-8"/> </head> <body> <ul> <li><a href="http://www.baidu.com" target="_right">百度一下</a></li> <li><a href="http://www.taobao.com" target="_right">淘宝网</a></li> <li><a href="http://w
葆宁
2019/04/19
5480
html链接标签
<a>标签,也叫anchor(锚点)元素,既可以用来链接到外部地址实现页面跳转功能,也可以链接到当前页面的某部分实现内部导航功能。
Devops海洋的渔夫
2019/05/31
6.8K0
【HTML】HTML 标签 ③ ( 链接标签 | 注释标签 )
注释是给 程序员 看的 , 用于标注代码作用 ; 通常情况下 , 都在代码的上方一行位置添加注释 ;
韩曙亮
2023/03/30
10.7K0
【HTML】HTML 标签 ③ ( 链接标签 | 注释标签 )
超链接标签
哈喽,亲爱的小伙伴们,好久没见啦,最近忙于项目的事情,所以并没有按时间发布新的文章,但是对于之前写的文章,我都有新的补充,尽量做到最全面和最易懂,那么这篇文章我就带大家了解一下什么是超链接标签。
守护最温柔的金木
2020/08/31
2.5K0
超链接标签
超链接 a 标签
主要用于打开其他网页,其中非常重要的属性是 href 属性,对应的值是其他网页的链接
鹤川
2023/03/21
1.6K0
HTML(基础、链接标签、图片标签)
1. 块状元素:独占一行,可以改变它的宽度和高度。如:标签 <div><p><h1>等等标签。
全栈开发日记
2022/05/12
7.9K0
HTML(基础、链接标签、图片标签)
a标签目标链接问题
2、确定文件寻找路径,因为css.html的父目录是css,而body.html在body目录下,所以需要先退到上一目录head然后再到body目录下寻找body.html
IT人一直在路上
2019/09/18
6150
a标签目标链接问题
如何在Cloudera Manager中配置Yarn放置规则
Hadoop集群管理员希望能对集群Yarn作业的资源进行控制。根据不同的业务组或不同的用户,对Yarn的资源池进行划分,达到资源管控、任务管控的效果。通过CM可以进行Yarn动态资源的配置,这里Fayson主要介绍如何在Cloudera Manager中配置Yarn动态资源池的放置规则。
Fayson
2018/11/08
3.2K0
6. html链接标签
<a>标签,也叫anchor(锚点)元素,既可以用来链接到外部地址实现页面跳转功能,也可以链接到当前页面的某部分实现内部导航功能。
Devops海洋的渔夫
2022/01/14
4K0
6. html链接标签
HTML超链接标签学习
超链接标签学习: a标签: href:要跳转的网页资源路径 本地资源:相对路径 网络资源:网络资源(网页)的URL target:指明要跳转的网页资源的显示位置 _self 在当前页中刷新显示 _blank 在新的标签页中显示 _top 在顶层页面中显示 _parent 在父级页面中显示 注意: 超链接标签中一定要声明访问方式,访问方式可以是文字也可以是图片. 锚点学习: 作用:在一张网页中进行资源跳转 使用: 先使用超链接标签在指定的网页位置增加锚点.格式为: <a name=“锚点名” ></a> 使用a标签可以跳转指定的锚点,达到网页内部资源跳转的目的,格式: <a href="#锚点名" >访问方式</a>
葆宁
2019/04/18
4.1K0
HTML超链接标签学习
链接标签使用及属性
如 <a href=”http://fireinsect.top”>小虫的个人博客</a>
摸鱼的G
2023/02/22
1.2K0
链接标签使用及属性
如何在折线图上添加动画效果?
要在 Chart.js 的折线图上添加动画效果,可以使用 Chart.js 提供的配置选项来实现。以下是一个示例,展示了如何在折线图上添加简单的动画效果:
王小婷
2023/09/09
4970
Emlog自动为文章标签添加该标签的链接
我们在编写文章时,经常需要添加一些标签的链接,这样不仅可以优化我们的内链,对用户来说也可以参照相关的文章,如果对文章的关键字进行手动添加链接,那样对我们来说太麻烦了,而且在标签关键词很多的情况下我们是记不住的,那怎么如何让Emlog站点的文章自动添加标签链接变为内链呢?其实我们只需要在主题目录下的module.php文件中添加一段代码就可以实现了。 打开我们主题的module.php文件添加如下代码: //自动为文章标签添加该标签的链接 function tag_link($content){
Youngxj
2018/06/07
1.2K0
JavaWeb——HTML基本标签详解及案例实战(文件标签、文本标签、图片标签、列表标签、链接标签、块标签、语义化标签、表格标签)
上一节介绍了HTML的基本概念,和基本语法,本节介绍下HTML的基本标签和表单标签。这部分学习可以参照W3Cschool,一个很好的网站。
Winter_world
2020/09/25
3.7K0
JavaWeb——HTML基本标签详解及案例实战(文件标签、文本标签、图片标签、列表标签、链接标签、块标签、语义化标签、表格标签)
《ROC曲线专栏》如何在坐标上放置2条生存曲线?
前期说到,如何绘制和解读单条ROC曲线。在实际的研究中,我们常常需要在同一坐标系中放置2条或多条ROC曲线,以便于直观比较。
Mark Chen
2020/11/25
7610
《ROC曲线专栏》如何在坐标上放置2条生存曲线?
html a标签打开新窗口_a标签链接打开新页面
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
4.4K0
通过html<map>标签给图片加链接
前面我们有谈到了通过图片定位给一张图片添加多个链接,现在用另外一种方法来实现,用html<map>标签给图片加链接 <img src="/images/hlj.jpg" border="0" usemap="#Map" alt=""> <map name="Map" id="Map"><area shape="rect" coords="798,298,956,340" href="/dot.html" /> </map> shape 属性为 "rect",表示方形,该值规定矩形左上角坐标(798,298)
ytkah
2018/03/06
3.6K0
让 select 的 option 标签支持事件监听(如复制操作)
想自定义option的样式,很多人会建议用 <ul> <li> 标签来辅助同步操作与值
书童小二
2018/09/03
4.8K0
让 select 的 option 标签支持事件监听(如复制操作)
点击加载更多

相似问题

如何在google地图上放置标签信息

22

在饼图上放置标签

11

如何在曲线图上放置标签工具提示

10

如何在Julia中的绘图上放置数据点标签

10

R:我如何在R基图上放置多行滴答标签?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档