2011-01-23 4 views
1

갑자기 앱을 시작할 때마다 사용자 기본 설정이 지워집니다. 이것은 지금까지, 완벽하게 일했다Android 앱 환경 설정이 자동으로 지워지고 있습니다.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

: 대신 활동에 직접 환경 설정을 사용하여, 나는 다음과 같은 기본 설정에 액세스 내 응용 프로그램 개체에 헬퍼 클래스가 있습니다. 나는 액티비티가 생성/파기 될 때이 컨텐트를 다시 생성하는 문제를 피하기 위해 애플리케이션의 대부분의 컨텐트를 관리하는 커스텀 애플리케이션 클래스를 가지고있다.

사용자 환경 설정을 지우는 방법이 있다는 것을 알고 있지만, 내 코드에는 아무 것도 없습니다. 이것은 릴리스 빌드를 위해 Proguard를 사용하여 빌드를 시작했을 때 시작되는 것처럼 보였습니다.하지만 디버그 빌드에서도 이와 같은 현상이 일어나고 있습니다. Eclipse에서 새 앱을 다시 다운로드하거나 앱을 다시 시작하기 만하면 환경 설정이 지워집니다.

나는 최근의 코드 변경을 겪어 왔으며 관련있는 항목을 찾지 못했습니다. 시장에 앱을 게시 할 즈음에 디버그 & 릴리스간에 전환을 유지하고 있지만 이것이 이런 문제를 일으킬 것이라고 생각하지는 않습니다.

아이디어가 있으십니까?

릴리스 빌드 이후 및 디버그를 구축

...

답변

0

해결되었습니다. Logcat을 사용하면 환경 설정을 읽을 때 마침내 예외가 있음을 알게되었습니다. null 키로 새로운 환경 설정을 쓰고 있었고 기본 설정로드 예외가 발생했습니다. 내 벙어리 실수.

+0

당신이 그것을 지워 버리는 것이 당신의 선호도를 남겨줄지라도 당신은 생각하지 않을 것입니다. 호기심이있는 사람은 블로그 게시물에서 이에 대해 자세히 이야기합니다. http://toastdroid.com/2014/07/04/null-shared-preference-key-bad-news-droids/ – MinceMan

1

당신을 인용 케빈이 내가 출시 Proguard와 건물 시작했을 때 일어나는 시작하는 것 않았다 빌드가 서명을 위해 다른 키를 사용하면 동일한 장치에 공존 할 수 없습니다. 릴리스 빌드를 설치할 때 디버그 빌드를 제거하지 않습니까? 제거하면 앱에 연결된 환경 설정이 취소됩니다.

환경 설정을 지우는 코드가 없다고 말했기 때문에 환경 설정 XML 파일이 지워지거나 삭제되는 경우 환경 설정이 사라지는 유일한 방법은 다른 방법입니다. 따라서 응용 프로그램의 로컬 저장소 영역에있는 파일을 지우는 코드가 없는지 확인하십시오.

+0

기본 설정 XML 파일을 제거하는 코드가 있다고 생각하지 않습니다. 디버그를 설치하기 전에 릴리스 모드 앱을 제거했습니다. 나는 이것이 환경 설정을 명확하게 할 것이라고 기대할 것이다. 그러나 2, 3 또는 n 번째로 앱을 실행하면 앱을 시작할 때 여전히 명확합니다. – ktambascio

관련 문제