2013-04-25 82 views
3

我們在啓動應用程序時發生崩潰,它嘗試創建共享首選項並從數據庫中讀取。它發生在不同的設備上,大多數是HTC,但也有LGs,它們運行着薑餅,而且它們沒有紮根。無法爲SharedPreferences或DataBase創建目錄

E/ApplicationContext(2630): Couldn't create directory for SharedPreferences file /data/data/com.example.project/shared_prefs/com.example.project_preferences.xml 

E/Database(2630): sqlite3_open_v2("/data/data/com.example.project/databases/project.db", &handle, 6, NULL) failed 

我們正在使用Roboguice初始化SharedPreferences。

卸載應用程序並重新安裝它似乎有幫助,但我們沒有辦法對我們的用戶說。

我環顧四周,發現人們在植根設備或特定三星設備中通常會遇到此問題。

在此先感謝!

注意:我們真正的軟件包名稱是唯一的,我已經在上面的代碼中更改了它,所以它不是公開的。

+0

我在錯誤報告中也看到了這類事情。我認爲操作系統中存在一個缺陷,偶爾會讓應用程序無法訪問他們自己的文件等等。經常由操作系統更新觸發。卸載並重新安裝是我找到的唯一解決方案。我想你可以編寫你的應用程序,以便將所有內容保存到SD卡/內部存儲中,而不是應用程序的受保護存儲。 – 2013-04-26 16:44:05

+0

謝謝蘭斯!這就是我們看到它的地方,在我們的小動作崩潰報告中。我們認爲這也是一個操作系統問題。感謝您的建議,我們可以嘗試! – cperes 2013-04-26 19:42:56

回答

1

我建議你將你的應用程序的包名從​​更改爲更獨特的東西。可能有這個問題的用戶在他們的設備上安裝了另一個使用相同軟件包名稱的應用程序,從而導致衝突。

+0

謝謝大衛,但我們的應用程序包名稱不是那個,我改變了它,因爲我不想公開它。我們是獨一無二的,所以這不是我們遇到的問題。謝謝! – cperes 2013-04-25 21:22:39

1

您需要添加在你的AndroidManifest.xml中的權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

我有同樣的問題與你,我與上述解決方案解決了這個問題。我想你也必須忘記權限。嘗試一下。