国际化资源文件,配置不完整导致报错

Android 2.3.3
Eclipse Version: 3.7.0
LogCat

 LogCat 报错信息:

02-07 23:19:47.171: WARN/dalvikvm(825): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): FATAL EXCEPTION: main
02-07 23:19:47.221: ERROR/AndroidRuntime(825): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tmall.htc/com.tmall.htc.manage.Config}: 

android.content.res.Resources$NotFoundException: String resource ID #0x7f070088
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.os.Handler.dispatchMessage(Handler.java:99)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.os.Looper.loop(Looper.java:123)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at java.lang.reflect.Method.invoke(Method.java:507)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at dalvik.system.NativeStart.main(Native Method)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f070088
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.content.res.Resources.getText(Resources.java:201)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.content.res.Resources.getString(Resources.java:254)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.content.Context.getString(Context.java:183)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at com.tmall.htc.manage.Config.getname(Config.java:384)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at com.tmall.htc.manage.Config.setSummary(Config.java:150)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at com.tmall.htc.manage.Config.onCreate(Config.java:88)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
02-07 23:19:47.221: ERROR/AndroidRuntime(825): ... 11 more

 

主要错误:

02-07 23:19:47.221: ERROR/AndroidRuntime(825): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f070088


发生错误原因分析:

Activity部分源代码:

	public String getname() {
		String setting = sharedPref.getString(Config.KEY_name,
				context.getString(R.string.def_name));
		return setting;
	} 

Eclispe并未提示R.string.def_name处出错,不存在“def_name cannot be resolved or is not a field”问题;

经反复查找,发现:因为支持国际化,在res下设置了中文和英文两套资源文件,默认资源为中文资源。

英文资源中已有

<string name="def_name">iphone4s</string> 

 

而中文资源中没有相应配置def_name。

Android虚拟机设置为默认中文,因此运行应用时找不到相应资源而报错。

解决办法:在中文资源中添加上述配置。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用 Spring Boot 和 MinIO 实现异步上传文件过程中遇到速度过快导致错误时,通常会出现以下几个原因: 1. **并发控制不足**:如果在短时间内有大量请求同时尝试访问 MinIO 存储服务,可能会因为 MinIO 的并发处理能力有限而导致超时、拒绝服务或错误响应。 2. **网络延迟**:高速上传可能导致本地设备与 MinIO 服务器之间的网络延迟增加,尤其是在远程部署的情况下。这种高数据流量可能超过了网络带宽限制。 3. **MinIO 配置问题**:MinIO 服务器的配置可能无法满足高并发上传的需求,例如,缓冲区大小、线程池大小等设置不当都可能导致性能瓶颈。 4. **源限制**:操作系统或容器环境可能对上传操作存在源限制,如CPU、内存或磁盘I/O限制。 ### 解决方案 1. **优化 MinIO 配置**: - **增加线程池大小**:通过调整 `threads` 参数增加并行任务的数量。 - **增大缓存区大小**:提高读取和写入缓冲区的大小可以减少系统 I/O 操作的压力。 2. **分批上传策略**: - 将大文件分割成小块,并分别上传,可以降低每次上传的数据量,减轻单次上传的负载压力。 3. **引入限流机制**: - 使用 Spring Cloud 或者自定义的限流组件,在客户端或服务端添加速率限制,防止短时间内大量请求涌入,避免超时或源耗尽。 4. **增强网络连接管理**: - 对于高并发场景,考虑使用连接池技术,合理管理到 MinIO 服务器的连接数,避免频繁建立新连接导致的额外开销。 5. **监控与日志**: - 加强对应用和 MinIO 服务器的监控,包括但不限于请求响应时间、错误率、源使用情况等,及时发现问题并调整策略。 6. **测试与压力测试**: - 进行充分的压力测试,模拟高并发场景下系统的稳定性和性能表现,以便提前发现潜在问题并进行优化。 通过以上措施,可以有效提升使用 Spring Boot 和 MinIO 的异步上传功能时的稳定性与效率。记得在实施变更后持续监控系统的表现,以确保解决问题的同时不会带来新的副作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值