2017-11-10 11 views
3

multidex를 사용하는 Android 앱이 있습니다. 그것은 풀어 놓이고 매달 사용자가 수십만에있다. 가끔씩 나는 크래시 틱스에서 ExceptionInInitializerError 충돌이 발생합니다. 나는 그들을 결코 재현 할 수 없었다.java.util.MissingResourceException : 기본 이름 javax.servlet.LocalStrings에 대한 번들을 찾을 수 없음

이것은 multidex로 인한 것일 수 있으며 그 중 multiDexKeepFile file('multidex-config.txt')은 내 구성에 클래스 목록이 도움이 될 것이라고 읽었지 만, 적어도이 리소스에는 도움이되지 않습니다.

org.eclipse.jetty.http.MimeTypes 
org.eclipse.jetty.server.Server 
javax.servlet.LocalStrings 

사람들은 내가 과거에 이런 충돌을 가졌다있는 모든 클래스입니다 : 이것은 내 multidex-config.txt의 내용이다. 나는 아직도 그 중 일부는 고정되어 있는지 확인하기 위해 기다리고 있지만 아래이 하나 확실히 돌아오고 계속 :

Fatal Exception: java.lang.ExceptionInInitializerError 
     at myapp.run(myclass.java:986) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:761) 
Caused by java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale it_IT 
     at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1501) 
     at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1324) 
     at java.util.ResourceBundle.getBundle(ResourceBundle.java:723) 
     at javax.servlet.GenericServlet.(GenericServlet.java) 

그래서 나는이 문제를 어떻게 해결할 수 있습니까? 이 경우에는 이탈리아 파일을 찾는 것처럼 보입니다. 항상 그렇진 않습니다. 이탈리아에 많은 사용자가 있으므로 몇 군데 만 충돌하는 이유를 모르겠습니다. LocalStrings에 대한 Android Studio의 리소스 번들에는 프랑스어와 일본어의 기본 리소스 번들 만 표시됩니다.

감사합니다.

+0

[이] (https://blogs.oracle.com/chengfang/solve-javautilmissingresourceexception:- cant-find-bundle-for-base-name-comconfig, -locale-zhcn) 이미 맞습니까? –

+0

나는 내가 거기에서 시험해야하는지 잘 모른다. 나는 실제로 리소스를 직접 추가하지 않고, gradle의 컴파일 라인을 통해 제공되며, 라이브러리를 살펴보면 리소스를 볼 수 있습니다. 또한 내가 말했듯이, 이것은 대부분의 내 사용자에게 잘 작동하며, 몇 가지 경우에만 실패합니다. – casolorz

답변

1

servlet-api 종속성을 추가하기 위해 누락되지 않았는지 확인하십시오. 당신이 받는다는을 사용하는 경우

이 의존성이 프로젝트에 있는지 확인하십시오 : 당신이하려고 생각

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
</dependency> 
+0

나는 그것을 가지고 있으며 서블릿은 내 앱의 핵심 부분이며 매월 수십만 명의 사용자에게 잘 작동합니다. 오류가 발생하는 사용자는 소수에 불과합니다. – casolorz

+0

그 사용자의 기본 이름이 비어 있지 않거나 일부 매개 변수가 누락되어 있는지 확인 했습니까 ** 기본 이름 ** –

+0

번들을 찾을 수 없습니다. 완전히 이해할 수는 없지만 오류는 게시물에 붙여 넣은 것과 정확하게 일치합니다. '기본 이름 javax.servlet.LocalStrings, locale it_IT'에 대한 번들을 찾을 수 없습니다. 나는 '미국'을 위해 그것을 보았다. – casolorz