首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >` `getResources().getString`生成异常

` `getResources().getString`生成异常
EN

Stack Overflow用户
提问于 2018-07-03 01:39:59
回答 1查看 510关注 0票数 1

在我的应用程序中,我有以下一行:

String ci = getResources().getString(R.string.cidades);

这是在运行应用程序时抛出异常。这只发生在版本7.1和8的Android,在以前的正常车轮,谁知道为什么?

逻辑猫:

ComponentInfo{insidetechnology.studio.ostdor.anestesiaanimal/insidetechnology.studio.ostdor.anestesiaanimal.autenticacao.state}:java.lang.RuntimeException:无法在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)启动活动java.lang.RuntimeException java.lang.IndexOutOfBoundsException在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread-包装11(未知来源:0)在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) android.os.Looper.loop(Looper.java:164).app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(本地方法)在com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)由: android.content.res.StringBlock.nativeGetString(Native方法上的java.lang.IndexOutOfBoundsException引起)在android.content.res.StringBlock.get(StringBlock.java:82) at android.content.res.AssetManager.getResourceValue(AssetManager.java:236)在android.content.res.AssetManager.getResourceText(AssetManager.java:164) at android.content.res.Resources.getText(Resources.( android.content.res.Resources.getString(Resources.java:432):334)在insidetechnology.studio.ostdor.anestesiaanimal.autenticacao.state.onCreate(state.java:38) at android.app.Activity.performCreate(Activity.java:6975)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892),at android.app.ActivityThread。-包装11(未知来源:0)在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)和android.os.Handler.dispatchMessage(Handler.java:105)Android.os.Looper.loop(Looper.java:164)总部位于安卓。App.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(本地方法)在com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)(在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767))

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-03 01:52:57

解决方法可以是使用string-array而不是string

代码语言:javascript
复制
<string-array name="items">
<item>item0</item>
<item>item1</item>
...
</string-array>

然后

代码语言:javascript
复制
String[] items = getResources().getStringArray(R.array.items);

我不知道为什么,但也许您的字符串超出了新的Android版本中字符串资源的限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51145570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档