java.util.MissingResourceException:找不到基本名称javax.servlet.LocalStrings

时间:2017-11-10 16:34:00

标签: java android multidex android-multidex

我有一个使用multidex的Android应用。它已发布,每月用户数十万。每隔一段时间我就会在Crashlytics上遇到ExceptionInInitializerError崩溃。我从来没有能够重现它们。

我读到这可能是由于multidex而且我的配置中有multiDexKeepFile file('multidex-config.txt')的类列表会有所帮助,但它似乎没有帮助,至少不适用于此资源。这是我multidex-config.txt上的内容:

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

这些都是我过去曾经崩溃的类。我还在等着看其中一些是否已修复,但下面的这一个肯定会回来:

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)

那我怎么解决这个问题呢?在这种情况下,它似乎正在寻找意大利文件,情况并非总是这样,我在意大利有很多用户,所以我不确定为什么它只会崩溃一些。 Android Studio上LocalStrings的资源包仅显示默认值,法语和日语。

感谢。

1 个答案:

答案 0 :(得分:1)

确保您不会错过添加servlet-api依赖项。

如果你正在使用maven,请确保这个依赖项在你的项目中:

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