特定版本的 HTC DESIRE HD 中 SQLite 中缺少表

2024-01-14

我的应用程序在 asset 文件夹中有一个 SQLite 数据库。当用户启动我的应用程序时,将创建数据库和表。

这适用于许多设备(Nexus One、Htc Magic、SGS、X10...甚至 Htc Desire HD v2.2)。 我的应用程序适用于所有版本的 Android(在我的设备(1.6、2.2、2.2.1 Htc Magic)和模拟器(v1、5 直到 v2.3)上测试)。

我有一个问题HTC 欲望高清 v2.2.1 1.72.405.3。

日志猫:

android.database.sqlite.SQLiteException:没有这样的表:LISTE:,编译时:从LISTE中选择_id 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2833) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854) 在 android.app.ActivityThread.access 2300 美元(ActivityThread.java:136) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:143) 在 android.app.ActivityThread.main(ActivityThread.java:5068) 在 java.lang.reflect.Method.invokeNative(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 在dalvik.system.NativeStart.main(本机方法) 导致:android.database.sqlite.SQLiteException:没有这样的表:LISTE:,编译时:select _id from LISTE 在 android.database.sqlite.SQLiteCompiledSql.native_compile(本机方法) 在 android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91) 在 android.database.sqlite.SQLiteCompiledSql。(SQLiteCompiledSql.java:64) 在 android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:80) 在 android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:46) 在 android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53) 在 android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1417) 在 android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1387) ... 11 更多

我的应用程序创建数据库,但它不会复制资产文件夹的文件表data\data\packagename\databases\mydatabase.

My code:

public void createDataBase() throws IOException{

 boolean dbExist = checkDataBase();

 if(dbExist){
  //do nothing - database already exist
 }else{

  //By calling this method and empty database will be created into the default system path
           //of your application so we are gonna be able to overwrite that database with our database.
     this.getReadableDatabase();

     try {

   copyDataBase();

  } catch (IOException e) {

      throw new Error("Error copying database");

     }
 }

}

private void copyDataBase() throws IOException{

 //Open your local db as the input stream
 InputStream myInput = myContext.getAssets().open(DB_NAME);

 // Path to the just created empty db
 String outFileName = DB_PATH + DB_NAME;

 //Open the empty db as the output stream
 OutputStream myOutput = new FileOutputStream(outFileName);

 //transfer bytes from the inputfile to the outputfile
 byte[] buffer = new byte[1024];
 int length;
 while ((length = myInput.read(buffer))!= -1){
  if (length > 0){
   myOutput.write(buffer, 0, length); 
  }     }

 //Close the streams
 myOutput.flush();
 myOutput.close();
 myInput.close();

}

我认为copydatabase函数有问题,但我没看到。

此代码适用于除HTC 欲望高清 v2.2.1 1.72.405.3。

对于上述给定版本的 HTC Desire 可能存在哪些问题?如何补救?


这只是一个猜测,意味着 Desire HD 的 Android 版本存在一个“错误”,所以我可能会非常失望。

我想知道那个版本的 Android 是否没有在它应该创建的地方创建数据库。您假设 DB_PATH 通常是 \data\data\packagename\databases\ 但如果不是怎么办?结果如下......

  1. this.getReadableDatabase()将在 \some\in Correct\path\mydatabase 创建一个空数据库
  2. Using new FileOutputStream(outFileName)只需创建一个新的空二进制文件 文件,因为上面没有创建 数据库位于您期望的位置。
  3. 复制成功
  4. 在执行 SELECT 请求之前,使用以下任一方法请求访问数据库:getReadableDatabase() or getWriteableDatabase()但这两者都只会打开在步骤 1 中创建的空数据库。

简而言之,复制过程很可能工作正常,但正在操作的数据库是空的,并且位于与您期望的位置不同的位置。

只是一个想法(多年来我见过类似的事情发生)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特定版本的 HTC DESIRE HD 中 SQLite 中缺少表 的相关文章

  • 移动网站 Facebook 使用 Facebook App 登录以获取登录详细信息

    使用网络浏览器 例如Android 上的 Chrome 如果移动网站要求用户登录 Facebook 而用户没有登录 则即使手机可能通过 Facebook 本机应用程序登录 Facebook 浏览器也会要求用户提供登录详细信息 有没有什么方法
  • 如何将库项目添加到 Android Studio?

    如何添加库项目 例如 Sherlock ABS 到安卓工作室 https en wikipedia org wiki Android Studio 不是针对旧的基于 Eclipse 的 ADT 捆绑包 而是针对新的 ADT安卓工作室 htt
  • 从当前位置出发的移动网络行车路线

    我正在构建一个网站的移动版本 试图通过一键式链接来启动 Google 地图 并提供从用户当前位置到企业的行车路线 我让它在 iPhone 上运行良好 但在 Android 上测试时 它会查看 Current 20Location 并尝试查找
  • Android:对于具有 LinearLayout 定义的成员的 ListView,上下文菜单不显示?

    我有一个 ListActivity 和 ListView 并且我已将一些数据绑定到它 数据显示得很好 而且我还为视图注册了一个上下文菜单 当我将列表项显示为简单的 TextView 时 它工作正常
  • 为什么 Cursor.requery() 被标记为“已弃用”?

    Cursor requery 是一种非常常见的方法 使用它来刷新 ListView 的内容 但为什么这个方法被标记为 已弃用 呢 我不太清楚 API 文档上的原因 Cursor requery API http developer andr
  • XmlPullParser 异常 - 无法解决

    我有一个基本方法 ReadXML 从资产文件夹中读取 xml 文件 运行时不会引发任何异常 但在这个方法中 我调用了 doXML 方法 该方法尝试从 xml 文件中提取文本并将该文本设置到文本视图中 当 doXML 方法运行时 我不断收到以
  • 如何在 Android 应用程序中使用 xmlserializer 创建 xml

    您好 我正在制作一个预订应用程序 我需要在创建 xml 后将 xml 发送到服务器 如何使用创建 xmlxmlserializer创建后将其发送到服务器 http api ean com ean services rs hotel v3 l
  • 如何计算android中位图擦除区域的百分比?

    我是安卓新手 我正在制作一个可以使用手指擦除画布上的位图的应用程序 像手指画橡皮擦之类的东西 我想计算擦除区域的百分比 例如 60 已从完整图像中擦除 请帮助我做到这一点 提前致谢 我尝试了一些方法 它总是给我 0 它不起作用 请参阅该方法
  • 像 Google Play 商店一样在垂直 RecyclerView 中动态不同图像水平 RecyclerView

    我一直在关注这个教程 http android pratap blogspot co za 2015 12 horizo ntal recyclerview in vertical html http android pratap blog
  • 为什么 Android Eclipse 不断刷新外部文件夹并花费很长时间?

    我只有一部新的 Android 手机 我一直在修补一些基本的应用程序 每当我保存任何内容时 Eclipse 的 Android 插件就会刷新外部文件夹 这让我抓狂 通常我不会介意 但当需要 10 秒才能刷新时 我开始注意到 我已经搜索过 其
  • ViewPagerIndicator:TabPagerIndicator 不可见

    我现在正在为 viewpageinderdicator 苦苦挣扎 当我使用 TitlePageIndicator 时 一切正常 但是当我尝试使用 TabPageIndicator 时我看不到它 它不会出现在层次结构视图中 我尝试了很多东西
  • SQLite - 左连接

    我需要进行这样的查询 SELECT table1 table2 column FROM table1 LEFT JOIN table2 ON table1 column table2 column 但这不起作用 如果我尝试相同的查询但替换第
  • 在 Android 模拟器中获取互联网连接

    我有一台带有wifi连接的台式电脑 我的IP地址是192 168 12 95 网关是192 168 10 10 但是我在android模拟器中没有获得互联网连接 也就是说我无法访问internate 我也尝试过 emulator avd w
  • Android studio 找不到 Theme.AppCompat.Light.DarkActionBar [重复]

    这个问题在这里已经有答案了 我已经导入了一个Android Studio项目来自Github into Android Studio 虽然我的build gradle有dependencies dependencies compile fi
  • 如何在Android 11中获取dir文件列表

    我想编写自己的精简版文件浏览器 文件 API 现在不适用于外部存储 该版本还提供了对范围存储的改进 这使得开发人员可以更轻松地迁移到使用此存储模型 我不明白如何使用范围存储来访问 sdcard 如果您正在寻找文件选择器体验 存储访问框架 h
  • 自定义支持对话框片段文本颜色错误

    如果我放一个TextView在自定义对话框中 文本默认为黑色 不幸的是 支持片段对话框背景是深灰色的 灰底黑字很难读 我可以改变TextView白色或类似的东西android textColor android attr textColor
  • 如何找出每个包含的库的最低 api 级别

    我的项目中包含了很多库 Android Studio 2 0 Preview 4 我想找出它们每个的最低 Android SDK 级别 是否可以不用谷歌搜索每个图书馆的信息 如果您有源形式的库 例如 作为项目中的库模块 请查看其清单 如果您
  • Android - 从渲染线程内结束活动

    下午好 我不熟悉 android 中的活动生命周期 并且一直在尽可能地阅读 但我不知道如何以良好的方式解决以下问题 我有一个使用 GLSurfaceView 的活动来在屏幕上绘制各种内容 在这个 GLSurfaceView 的渲染线程中 我
  • android 填充包含片段的布局

    问题是什么 我如何膨胀包含片段的布局 我不知道错误消息的含义 请帮我 谢谢 错误信息 09 01 18 44 58 698 E AndroidRuntime 20617 Caused by java lang IllegalArgument
  • 允许使用 SurfaceTexture 在 GLSurfaceView 渲染器中进行多通道渲染

    我正在显示视频GLSurfaceView使用需要连续应用多个着色器的自定义渲染器 目前 它可以成功地使用一个着色器 但我不确定如何扩展渲染管道以连续应用多个着色器 我知道有一些关于应用多个着色器的示例 使用FrameBuffers and

随机推荐

  • 父变量未在 Angular 的子组件中更新

    我在父组件中有一个这样的变量 父组件 export class ParentComponent variable varExample false ViewChild child child ChildComponent someFunct
  • 将 char 指针传递给接受 char 数组引用的函数

    我正在尝试调用这个方法 define SIZE 16 void DoSomething char value SIZE 从这个方法可以看出 void BeforeDoingSomething char value int len if le
  • 具有动态角色的基于角色的访问控制

    我们有一个应该实现 rbac 的 Nest 应用程序 我根据守卫文档为其添加了一个基本的守卫和装饰器 https docs nestjs com guards https docs nestjs com guards 问题 这仅允许静态角色
  • 如何在Python中正确应用赋值运算符?

    我必须对一个大数组进行一些数学运算 例如加法 乘法 为了防止任何 MemoryError 我正在按照此答案的建议进行计算thread https stackoverflow com questions 4318615 python nump
  • 从常规数组中创建一个具有相同键和值的关联数组

    我有一个看起来像的数组 numbers array first second third 我想要一个函数 它将将此数组作为输入并返回一个如下所示的数组 array first gt first second gt second third
  • 如何在C中动态分配字符串数组?

    我是菜鸟所以别太难了 而不是这样的东西 char string NUM OF STRINGS NUM OF LETTERS 是否可以使用 malloc 动态分配数组中的字符串数量 就像为 char 指针动态分配内存一样 像这样的事情 int
  • ThreadPoolExecutor - 在队列之前使用线程

    我正在用 java 给定的 ThreadPoolExecutor 替换旧线程池 在传统线程池中 启动时会创建 60000 个线程 但在 ThreadPoolExecutor 中 使用核心线程 最大线程和 prestartAllCoreThr
  • FabricJS:始终在画布上居中对象

    是否可以始终将对象置于 Fabricjs 画布的中心 背景 我正在构建一个网络工具 可以使用 Fabricjs 轻松创建复杂的动画 我希望能够将画布大小的宽度和高度设置为 100 因此 我想将所有对象放置在中心并为其添加 X Y 偏移 当我
  • 通过关系获取相关数据

    我正在使用 laravel 5 5 13 I have App Entity其中有很多App Comment的和许多App Thumb s 现在我可以像这样轻松获取评论和拇指 public function show Entity enti
  • Rails - 如何基于布尔字段进行搜索? (MySQL 错误)

    我正在运行以下查询 projects company projects where active true order created at ASC 我收到错误 ActiveRecord StatementInvalid Mysql Par
  • 使用数据注释进行 MVC 验证 - 模型类还是视图模型类?

    将数据验证注释放在模型或视图模型中是最佳实践吗 一种方法相对于另一种方法的优点 缺点是什么 我很想知道每个人都在哪里进行验证 我目前正在模型项目中进行验证 然而我看到一些人说这不是最佳实践 就最佳实践而言 我想说 两者都不是 验证应该是分开
  • 通过 Group By Pandas 创建两个聚合列

    我是 DataFrames 的新手 我想对多列进行分组 然后对最后一列进行求和并计数 例如 s pd DataFrame np matrix 1 2 3 4 3 4 7 6 3 4 5 6 1 2 3 7 columns a b c d a
  • Jenkins 是否自动创建上游/下游?

    我正在使用詹金斯进行持续集成 我创建了单独的视图 例如服务器 A 的视图 A 服务器 B 的视图 B 等 每个视图都根据服务器的环境属性构建我的项目 但我可以看到 即使没有明确创建 也会创建不相关的上游和下游 有什么解决办法吗 在 Jenk
  • 通过Data类发送类对象

    安卓最近推出了工作经理 https developer android com reference androidx work WorkManager用于调度任务 该功能的强大功能之一工作经理 https developer android
  • 如何使用 oauth2 安全性在资源服务器中配置资源 id

    我正在尝试创建授权服务器和资源服务器 当尝试从授权服务器获取访问令牌时 其工作并获取具有以下详细信息的访问令牌 access token 5ffbc2d7 2a27 4f08 921f f7de2410b5f5 token type bea
  • Gremlin Python createIndex (Tinkerpop)

    我目前正在使用 Tinkerpop 与gremlin python 客户端 https pypi python org pypi gremlinpython 3 2 4使用默认的TinkerGraph Gremlin https tinke
  • Python 字符串匹配

    如果一个字符串包含 SUBJECT123 如何确定字符串有subject在Python中 if subject in mystring lower do something
  • Redis 键中冒号的用途是什么

    我正在学习如何在我的项目中使用 Redis 我不明白的一件事是键名称中冒号的确切用途 我见过这样的键名 users bob color blue item bag 冒号是否可以将键分类并加快查找键的速度 如果是这样 您可以在命名键时使用多个
  • 仅使用 CSS 使相邻同级元素具有相同的宽度

    我提前表示抱歉 因为出于保密原因 我无法显示我正在处理的代码 图像 但我认为我可以很简单地解释它 我有一个 h1 充当我的网页标题的元素 该标题可以根据用户所在的特定页面的标题更改长度 因此它可以说 主页 也可以说 已保存的项目 等 长度各
  • 特定版本的 HTC DESIRE HD 中 SQLite 中缺少表

    我的应用程序在 asset 文件夹中有一个 SQLite 数据库 当用户启动我的应用程序时 将创建数据库和表 这适用于许多设备 Nexus One Htc Magic SGS X10 甚至 Htc Desire HD v2 2 我的应用程序