【问题标题】:Running app on real device vs emulator在真实设备与模拟器上运行应用程序
【发布时间】:2016-09-27 07:51:13
【问题描述】:

一般问题:我有数据库应用程序(它创建数据库并允许向其中输入数据)。在模拟器(Nexus 7 API 22 Android 5.0.2)上运行时运行良好,但是当相同的应用程序在真实设备上运行时,ASUS AOSP On Flo Android 5.1.1 API 22 崩溃。在其他真机上运行应用程序 Sony E5823 Android 6.0.1 API 23 运行良好。

编辑:

logcat 输出:

09-27 08:57:50.318 544-572/? I/ActivityManager: Displayed com.linux.site.mrt.mydatabaseexample/.MainActivity: +467ms 09-27 08:57:50.341 894-894/? I/LatinIME: Starting input. Cursor position = -1,-1 09-27 08:57:50.355 894-894/? E/RichInputConnection: Unable to connect to the editor to retrieve text. 09-27 08:57:50.355 894-894/? D/RichInputConnection: Will try to retrieve text later. 09-27 08:57:50.359 894-894/? I/InputAttributes: InputType.TYPE_NULL is specified 09-27 08:57:50.407 894-894/? I/LatinIME: Starting input. Cursor position = 0,0 09-27 08:58:01.265 10240-10240/? E/SQLiteLog: (1) no such table: results_table 09-27 08:58:01.267 10240-10240/? D/AndroidRuntime: Shutting down VM 09-27 08:58:01.268 10240-10240/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.linux.site.mrt.mydatabaseexample, PID: 10240 android.database.sqlite.SQLiteException: no such table: results_table (code 1): , while compiling: select * from results_table at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316) at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255) at com.linux.site.mrt.mydatabaseexample.DatabaseHelper.getAllData(DatabaseHelper.java:128) at com.linux.site.mrt.mydatabaseexample.MainActivity$2.onClick(MainActivity.java:80) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 09-27 08:58:01.270 544-1123/? W/ActivityManager: Force finishing activity 1 com.linux.site.mrt.mydatabaseexample/.MainActivity

【问题讨论】:

  • 你能给我们看看 locgat 吗?
  • 我怀疑您正在资产文件夹中创建数据库并访问它。您必须动态创建数据库/表。这是所有三星设备或任何修改操作系统的设备的常见问题
  • @kgandroid 数据库在 data/data/packageName... 中创建或应该创建。我正在使用db.execSQL(create table" + TABLE_NAME + (... 代码
  • 似乎您正在动态创建它...发布您的崩溃日志
  • no such table results_table...表示该表没有正确创建

标签: android android-sqlite


【解决方案1】:

在logcat中看到,数据库中没有找到表tabel_Result,如果你清除存储在模拟器上的数据,也会出现同样的错误。我认为你需要

【讨论】:

  • 准确地说this是正确的解决方案。
猜你喜欢
  • 1970-01-01
  • 2014-09-01
  • 2012-09-18
  • 1970-01-01
  • 2016-09-02
  • 2020-05-23
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
相关资源
最近更新 更多