如果您的应用程序需要数据库并且它带有内置数据,那么运送该应用程序的最佳方式是什么?我是不是该:
预先创建SQLite数据库并将其包含在.apk?
在应用程序中包含SQL命令并让它创建数据库并在首次使用时插入数据?
我看到的缺点是:
可能的SQLite版本不匹配可能会导致问题,我目前不知道数据库应该去哪里以及如何访问它.
在设备上创建和填充数据库可能需要很长时间.
有什么建议?关于任何问题的文档的指针将不胜感激.
我正在开发一个应用程序,我知道我的数据库 *.db将出现在data/data/com.****.***
我可以借助sqlite manager从Eclipse中的AVD访问此文件
但我无法在Android手机中访问此文件.
我谷歌它,它说我需要根我的手机来做它,但我不想这样做.(新手机,保修问题和安全问题)
所以这是我的问题:如何data/data/.....在没有生根的情况下访问Android手机中的目录 "?
我可以在data/data.....不生根的情况下更改目录的用户权限吗?
我已经在我的桌子上创建了我的桌子SQLiteOpenHelper onCreate()但收到了
SQLiteException: no such table
Run Code Online (Sandbox Code Playgroud)
要么
SQLiteException: no such column
Run Code Online (Sandbox Code Playgroud)
错误.为什么?
注意:
(这是每周数十个类似问题的合并摘要.试图在这里提供一个"规范的"社区维基问题/答案,以便所有这些问题可以引导到一个很好的参考.)
自从它发布以来,我一直在使用Android Studio来开发我的应用程序.
一切都很好,直到最近,我必须与检查数据库文件一起调试.由于我不知道如何直接查看数据库,当我调试生成数据库文件时,我必须将数据库文件从手机导出到PC.
为了做到这一点,我必须打开DDMS > File Explorer.一旦我打开DDMS,我就必须重新连接USB,我就失去了调试线程.检查数据库文件后,我必须关闭DDMS并再次重新连接USB以返回调试模式.
这太复杂了.有没有人有更好的方法在Android Studio中执行此操作(我知道它在Eclipse中更容易)?
我正在android中创建一个SQLite数据库.
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " ("
+ KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NAME + " TEXT NOT NULL, "
+ KEY_WORKED + " INTEGER, "
+ KEY_NOTE + " INTEGER);");
Run Code Online (Sandbox Code Playgroud)
是否可以为KEY_NOTE创建的每一行0(零)设置默认值(这是一个整数)?如果是这样,那么正确的代码应该是什么.
在非root用户设备上,我可以使用run-as带有我的包名称的命令导航到包含数据库的数据文件夹.我满意的大多数文件类型只是查看,但我想从Android设备拉数据库.
是否有一个download copy或move亚行外壳,这部分命令?我想下载数据库文件并使用数据库浏览器查看其内容.
这里的一个答案涉及将整个应用程序包转换为压缩存档,但是一旦完成并移动到机器上,如何提取该存档就没有进一步的答案,当我可能有一个更直接的解决方案开始
我无法找到Android在SQLite数据库文件中存储数据库版本的位置.数据库版本到底存储在哪里?
我试图在我的Android数据库上使用此查询,但它不返回任何数据.我错过了什么吗?
SQLiteDatabase db = mDbHelper.getReadableDatabase();
String select = "Select _id, title, title_raw from search Where(title_raw like " + "'%Smith%'" +
")";
Cursor cursor = db.query(TABLE_NAME, FROM,
select, null, null, null, null);
startManagingCursor(cursor);
return cursor;
Run Code Online (Sandbox Code Playgroud) 我的SQLite数据库中的每条记录都包含一个字段,其中包含以格式Date存储的字段.string'yyyy-MM-dd HH:mm:ss'
是否可以查询数据库以获取包含最新日期的记录?
我已经在网站上阅读了有关此问题的各种内容,但我无法弄清楚这一点.我正在为这个应用程序使用预构建数据库.我正在使用jellybean这个应用程序.
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.quotes"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.quotes.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
Logcat输出
根据logcat它是由SQLiteCantOpenDatabaseException引起的
06-10 23:07:01.831: E/Trace(4419): error opening trace file: No such file or directory (2)
06-10 23:07:03.611: E/SQLiteLog(4419): (14) cannot open file at line 30176 of [00bb9c9ce4]
06-10 23:07:03.621: E/SQLiteLog(4419): (14) os_unix.c:30176: (2) open(/data/data/com.example.quotes/databasesQuotesdb) -
06-10 23:07:03.641: E/SQLiteDatabase(4419): Failed to open database '/data/data/com.example.quotes/databasesQuotesdb'.
06-10 …Run Code Online (Sandbox Code Playgroud) android-sqlite ×10
android ×9
sqlite ×4
database ×3
adb ×2
ddms ×1
sql ×1
sql-order-by ×1
sqlexception ×1