3

앱을 시작할 때 충돌이 발생하여 공유 환경 설정을 만들고 데이터베이스에서 읽으려고합니다. Gingerbread를 실행하는 다른 장치, 주로 HTC 및 LG에서도 발생하며 뿌리가 내리지 않습니다.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

나는 나의 오류 보고서에서도 이런 종류의 것을 본다. OS에 종종 자신의 파일에 액세스 할 수있는 기능이없는 버그가 있다고 생각합니다. OS 업데이트로 자주 발생합니다. 제거 및 재설치는 내가 찾은 유일한 솔루션입니다. 앱의 보호 된 저장소 대신 SD 카드/내부 저장소에 모든 것을 저장하도록 앱을 작성할 수 있다고 가정합니다. –

+0

감사합니다. 랜스! 그것이 우리가보고있는 곳입니다, 우리의 비판 주의자 충돌 보고서에서. 우리는 OS 문제라고 생각합니다. 제안에 감사 드리며, 우리는 그것을 시도 할 수 있습니다! – cperes

답변

1

응용 프로그램의 패키지 이름을 com.example.project에서 좀 더 독특한 것으로 변경하는 것이 좋습니다. 이 문제가있는 사용자는 동일한 패키지 이름을 사용하는 장치에 다른 응용 프로그램을 설치했을 수 있으므로 충돌이 발생할 수 있습니다.

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

내가 당신과 같은 문제가, 나는 위의 솔루션으로 해결 :

+0

데이비드에게 감사의 말을 전합니다.하지만 우리의 응용 프로그램 패키지 이름은 그 이름이 아닙니다. 공개하지 않으려 고했습니다. 우리는 독특하기 때문에 우리가 가진 문제는 아닙니다. 감사! – cperes

1

당신은 당신의 AndroidManifest.xml에 권한을 추가해야합니다. 나는 당신도 허가를 잊어야한다고 생각한다. 시도 해봐.