2012-09-11 3 views
0

출판 충돌이 동일한 키 값을 서로 다른 값을 가진 strings.xml의 파일이 있습니다.에는 getString()가 나는 모든 폴더에서</p> <pre><code>values values-ru values-es etc. </code></pre> <p>같은 폴더에 문자열 일부 현지화 된 파일이 응용 프로그램

그리고 디버그 모드에서 완벽하게 작동합니다. 하지만 Play Market에서 앱을 다운로드 할 때 모든 지역에서 Resources$NotFoundException과 충돌합니다.

또한, 나는 초기화하는 동안

Locale locale = getBaseContext().getResources().getConfiguration().locale; 
     Locale.setDefault(locale); 
     Configuration config = new Configuration(); 
     config.locale = locale; 
     getBaseContext().getResources().updateConfiguration(config,         getBaseContext().getResources().getDisplayMetrics()); 

을한다. 이유가 될 수 있습니까?

제안 사항?

로그에서 찾기 콘솔 :

android.content.res.Resources$NotFoundException: String resource ID #0x7f080010 
at android.content.res.Resources.getText(Resources.java:201) 
at android.content.res.Resources.getString(Resources.java:254) 
at android.content.Context.getString(Context.java:182) 
at com.companyName.appName.menuActivity.onWindowFocusChanged(menuActivity.java:115) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.onWindowFocusChanged(PhoneWindow.java:1986) 
at android.view.View.dispatchWindowFocusChanged(View.java:3788) 
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:658) 
at android.view.ViewRoot.handleMessage(ViewRoot.java:1921) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4627) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
at dalvik.system.NativeStart.main(Native Method) 
+0

모바일에 logcat 앱을 설치하고 오류 메시지를 게시하십시오. –

+0

로그가 있습니다. –

+0

프로젝트> 정리 및 내보내기를 다시 실행 해 보셨습니까? 때로는 aapt가 생성 한 자원이 필요할 때 새로 고쳐지지 않는 경우가 있습니다. – alanv

답변

0

나는이 부분을

Locale locale = getBaseContext().getResources().getConfiguration().locale; 
     Locale.setDefault(locale); 
     Configuration config = new Configuration(); 
     config.locale = locale; 
     getBaseContext().getResources().updateConfiguration(config,         getBaseContext().getResources().getDisplayMetrics()); 

을 제거하고 그것을 작동합니다. 제가 제안 할 수 있듯이, 로케일을 고칠 필요가 없으며 시스템은 필요한 리소스를 가정 한대로 사용할 것입니다.

관련 문제