当前位置: 首页 > 知识库问答 >
问题:

在Android中更改区域设置后,应用程序找不到资源

郗俊能
2023-03-14

我正在做一个项目,它需要在飞行中改变html" target="_blank">语言。我正在尝试设置所需的区域设置,但我一设置,应用程序就崩溃了,抱怨它找不到资源(比如r.layout.*r.drawable.*)

这是我用来设置新区域设置的代码:

            String languageToLoad = "es";
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,
                    getBaseContext().getResources().getDisplayMetrics());

编辑:已添加日志

E/AndroidRuntime:致命异常:main java.lang.RuntimeException:无法启动activity组件Info{com.flavorburst.mcdonalds/com.flavorburst.mcdonalds.myActivity}:Android.view.inflateException:二进制XML文件行#25:在Android.app.activityThread.HandleLaunchActivity(ActivityThread.java:2180)在Android.app.activityThread.Access$600(ActivityThread.java:2230)在Android.app.activityThread$H.(本机方法)导致的原因:Android.View.InflateException:二进制XML文件行#25:在Android.View.LayoutInflater.CreateViewFromTag(LayoutInflater.java:704)在Android.View.LayoutInflater.Rinflate(LayoutInflater.java:746)在ythread.java:141)在android.app.activitythread$H.HandleMessage(activitythread.java:1234)在android.os.handler.dispatchMessage(handler.java:99)在android.os.looper.loop(looper.java:137)在android.app.activitythread.main(activitythread.java:5041)在java.lang.reflect.Method.invokenative(原生方法)在java.lang.reflect.Method.invoke(原生方法)在TManager.java:1035)在android.app.FragmentManager.java:1137)在android.app.activity.onCreateView(activity.java:4717)在android.view.LayoutInflater.CreateViewFromTag(LayoutInflater.rInflate(LayoutInflater.java:680)在android.view.LayoutInflater.rInflate(LayoutInflater.java:746)在.app.ActivityThread.Access$600(ActivityThread.java:141)在Android.app.ActivityThread$H.HandleMessage(ActivityThread.java:1234)在Android.os.Handler.DispatchMessage(ActivityThread.java:99)在Android.os.looper.loop(looper.java:137)在Android.app.ActivityThread.Main(ActivityThread.java:5041)在java.lang.Reflect.Method.InvokeNative(原生方法)在

共有1个答案

郏经纬
2023-03-14

此错误:

Caused by: android.content.res.Resources$NotFoundException: String array resource ID #0x7f08001e at android.content.res.Resources.getStringArray(Resources.java:451) at com.flavorburst.mcdonalds.NavigationDrawerFragment

引用您在某个XML文件中定义的字符串数组,但您忘记在/values/array.XML中创建字符串数组值。例如,在您的一个XML文件中,您可能指定了“arraynames”的字符串数组值,但您忘记在/values/array.XML中声明它,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="arrayNames"/>
</resources>

因此,在运行时,编译器会抱怨它在/values/array.xml中找不到“arraynames”。因此,在运行应用程序时会出现错误。

 类似资料:
  • 编辑: 我的理解可能是错误的,但这是一个不同于以编程方式设置语言环境的问题,因为我已经实现了那里建议的答案,我仍然有一些问题。 在这个问题中,我请求帮助解决这些问题(在设置的语言环境中没有参考的问题)。 原始帖子 我试图在我的应用程序中实现自定义语言环境,并遇到几个问题。 在调用setContentView之前,我在所有活动中使用以下代码: 编辑: 我还测试了它与: 我添加到Android中的所有

  • 我想强制我的Symfony 2.5应用程序的区域设置为。我希望这个区域设置用于strftime()函数。 我的: 我正在我的一个控制器中使用以下代码来调试: 当这样执行时,它显示:。 但是,当第一行未注释时,它会显示:,因此区域设置已安装在系统中并正常工作。 我如何使Symfony始终使用配置中指定的语言环境? $locale-a:

  • 问题内容: 我曾经运行过Flask应用。如果将变量更改为,则Gunicorn给出错误。为什么会出现此错误,我该如何解决? myproject.py: wsgi.py: 问题答案: Gunicorn(和大多数WSGI服务器)默认在你指向的模块中查找可调用的名称。添加别名或将使再次发现可调用对象。 但是,wsgi.py不需要文件或别名,Gunicorn可以直接指向实际模块并可以调用。 Gunicorn

  • 我想在我的Android应用程序中显示一些坐标。我从后端收到两个双精度值(和,以十进制度数表示)。 示例数据: 现在我在我的类文件中填充我的文本视图: 我的xml资源文件包含以下内容: 它显示: 因为我住在荷兰,所以它的格式是相应的。 看见https://developer.android.com/reference/java/util/Formatter 数字定位算法 如果存在十进制分隔符,则替

  • 我在我的应用程序中,打开了一个活动。我按下主页按钮并更改语言,从taskmanager打开我的应用程序。问题:我的活动布局越来越宽。 对应于该活动的androidmanifest的更改: 注意:若我在android清单中添加语言环境,布局是正确的,但语言不会立即更新。用户必须关闭该活动,然后重新启动,只有这样语言才能得到更新。 请提供您的意见。