2013-04-23 124 views
1

我在使用普通用戶安裝我的應用程序時遇到了Nuxus 10的問題,之後運行....然後它顯示錯誤複製失敗:java.io.FileNotFoundException:/data/data/packagename/databases/databasename.sqlite:打開:失敗:EACCES(權限被拒絕)

java.lang.Error: Error copying database => java.io.FileNotFoundException: /data/data/packagename/databases/databasename.sqlite: open failed: ENOENT (No such file or directory) 

如果我與管理員用戶運行Nexus 10,它的效果很好。

AndroidManifest:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 

<!-- Keeps the processor from sleeping when a message is received. --> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.GET_TASKS" /> 

我試圖找到解決很多次,但我仍然沒有找到它。

你能告訴我解決方案嗎? 謝謝,

+0

其不獲取數據庫中檢查你的數據庫名稱和路徑你在哪裏應對.. – SilentKiller 2013-04-23 10:00:12

回答

0

隨着您提供的信息,我可以告訴你,數據庫文件似乎不存在。像這樣的東西檢查:

if(new File("/path/to/database").exists()) { 
    // database access code comes here 
} else { 
    // database does not exists. Create it! 
    // create directories if needed 
    // and so on 
} 
+0

現在我可以創建數據庫,但我沒有權限上打開數據庫普通用戶Nexus 10(Nuxus 10在多用戶上運行)。但是當我使用管理員用戶在此設備上運行時,它運行良好。 – sonida 2013-04-23 10:50:49

+0

在這種情況下,您可能需要將數據庫文件放在共享目錄中。例如。在SD卡上的某處。 – rekire 2013-04-23 10:52:30

+0

只是另一個想法使用os給出的路徑,所以用戶將擁有自己的數據庫。如果我猜是正確的比其他用戶可以訪問的其他所有用戶的數據目錄。 – rekire 2013-04-23 14:16:26

相關問題