java - 快速修复字符串开关后的 Android 错误

标签 java android compiler-construction

在处理 Android 项目时,我想使用字符串开关来识别单击了 ListView 上的哪个项目。 Eclipse 给出一个错误,指出目标 JRE 必须至少为 1.7 才能使用此功能,并提出了一个快速修复方案:“将项目合规性 JRE 更改为 1.7”。我点击它,错误消失了,但我很快发现Android SDK不支持Java 1.7。构建和上传/安装应用程序时,控制台为每个 Activity 给出此错误:

[2013-07-28 14:45:29 - TriviaQuiz] Dx 
trouble processing:
[2013-07-28 14:45:29 - TriviaQuiz] Dx bad class file magic (cafebabe) or version     (0033.0000)
...while parsing com/rob/triviaquiz/BuildConfig.class
...while processing com/rob/triviaquiz/BuildConfig.class

我尝试通过使用多个 methods 将目标 JRE 设置为 1.6 来撤消此快速修复。 :Android工具-->修复项目属性,属性-->Java编译器,窗口-->首选项-->Java-->编译器。将目标重置为 1.6 有效(我认为),但我仍然遇到相同的错误。

有人知道如何解决这个问题吗?

编辑: 我的问题不是我想在 Android 中使用字符串数组或 1.7 版本的 Java,而是我的 Android 项目在快速修复后不再工作,该修复改变了我的目标运行时环境为 1.7。我已经能够将其重置为版本 1.6(通过使用上述方法),但错误仍然存​​在。因此,我认为这个快速修复所带来的困惑不仅仅是更改目标 Java 版本,因为构建器仍然认为我的目标是 Java 1.7,并从我的应用程序中排除了我的所有 Activity (这使其立即崩溃)

最佳答案

几个月前我遇到了同样的问题,正如您所说:

...but I quickly found out the Android SDK doesn't support Java 1.7.

所以需要基于1.6进行开发

检查this ,这就是出现错误的原因。

因此,按照建议,使用 if/else 逻辑来模拟开关行为。为了获得更好的性能,也建议使用它。

关于java - 快速修复字符串开关后的 Android 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17926481/

相关文章:

java - 使用 CCDT 连接 Tomcat 到 MQ 服务器 | 64位

java - Spring StringToObject.toObject() 未在列表中调用?

android - 读取图像数据

android - 我如何让android等待文本输入?

android - Jetpack 撰写 : What is the best way to support all screen sizes?

c++ - 跨 DLL 边界传递没有 vtables 的 C++ 结构?

compiler-construction - 编译器如何编译编译器?

java - 文件搜索用户输入的短语

java - 将数字放在二维数组中的随机点

java - ANTLR - 如何确定什么样的解析树 "best fits"一些代码