0

在处理 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

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

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

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

4

3 回答 3

1

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

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

所以需要基于1.6开发

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

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

于 2013-07-29T14:29:24.283 回答
0

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

于 2013-07-29T14:23:13.927 回答
0

我已经解决了我的问题。

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

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

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

于 2013-07-30T10:43:43.303 回答