我正在寫一個應用程序,它將訪問sqlite數據庫進行讀寫。 我已經使用sqlite數據庫瀏覽器創建了數據庫,並將其推送到/ data/local/tmp。 它也將被其他應用程序使用,並且即使我的應用程序不存在也必須存在於系統上 我的應用程序可以讀取數據庫,但我無法更新數據庫。 我的清單是:android sqlite更新錯誤
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.intralot.settings"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="15" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/my_title"
android:theme="@android:style/Theme.Light" >
<activity
android:name="....."
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>
這些消息在logcat的是:
I/SqliteDatabaseCpp(4002): sqlite returned: error code = 14, msg = cannot open file at line 27701 of [8609a15dfa], db=/data/local/tmp/settings.db
I/SqliteDatabaseCpp(4002): sqlite returned: error code = 14, msg = os_unix.c: open() at line 27701 - "" errno=2 path=/data/local/tmp/settings.db-journal, db=/data/local/tmp/settings.db
I/SqliteDatabaseCpp(4002): sqlite returned: error code = 14, msg = statement aborts at 20: [UPDATE settings SET ip=? WHERE _id=1] , db=/data/local/tmp/settings.db
觸發這是代碼:
try{
result = db.update(SETTINGS_TABLE, newValues, "_id="+index, null);
}catch(Exception e){
e.printStackTrace();
}
我在做什麼錯?
你檢查了/ data/local/tmp中的數據庫文件的文件權限嗎?也許它不可讀/可寫。但無論如何,爲什麼不把文件放在外部存儲上? – dermatthias 2013-03-26 17:17:18
@dermatthias可能出於安全原因:) – Sajmon 2013-03-26 18:00:29
@dermatthias Sajmon說,sd將用於其他目的。所有權限均爲rw。 – vathan 2013-03-27 09:39:02