快速修复String开关后出现Android错误

时间:2013-07-29 14:20:16

标签: java android compiler-construction

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

[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:Android工具 - >将目标JRE设置为1.6来尝试撤消此快速修复。修复项目属性,属性 - > Java编译器,窗口 - >偏好 - > Java - >编译器。将目标重置为1.6(我认为),但我仍然遇到同样的错误。

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

编辑:我的问题不在于我想使用String数组或1.7版本的Java与Android,但是我的Android项目在快速修复之后不再起作用了目标运行时环境为1.7。我已经能够将其重置为1.6版(通过使用上述方法),但错误仍然存​​在。所以我认为我这个快速解决方案不仅仅是改变了目标Java版本,因为构建器仍然认为我的目标是Java 1.7并且从我的应用程序中排除了我的所有活动(这使得它立即崩溃)

3 个答案:

答案 0 :(得分:1)

几个月前我有同样的问题,正如你所说:

  

...但我很快发现Android SDK不支持Java 1.7。

所以你需要基于1.6开发

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

按照建议,使用if / else逻辑来模拟切换行为。建议也提高性能。

答案 1 :(得分:0)

Android仅适用于Java 1.6。它不适用于1.7,Dalvic不会支持它。所以你不能使用1.7功能。

答案 2 :(得分:0)

我已经解决了我的问题。

事实证明,该错误与我在res / values-v14文件中所做的更改有关,该更改将解决性能问题(绘制背景两次),但它只会产生更大的问题。我将这些句子添加到< style>:

<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@null</item>

当我删除这些句子并将目标Java版本从1.7重置为1.6时,我的问题就消失了。为什么这解决了我的问题或为什么这首先给出了错误对我来说仍然是一个谜。