3

在获得有关 SO的这个问题的解决方案后,我终于能够找到我的面包块库。我被定向到 maven Central,在那里我下载了页面底部列表中大小为 24kb 的第三个 crouton-1.8.4。然后我将它复制到我的android项目的libs文件夹中,将它添加到构建路径,并在订单和导出面板中检查它。

这解决了我在之前提出的问题中遇到的问题。

我试图运行的代码Crouton.makeText(this, "BAD Crouton", Style.ALERT); 只是为了看看它是否有效。我在 4.4.2 模拟器上测试它。在添加了 Style.Builder 之后,我还在 2.2 模拟器上尝试了它,它需要在较低的设备上工作。我遇到了同样的问题。

但是当我的快乐是短暂的,因为当我在模拟器上测试它时,这是我在我的 logcat 中遇到的错误。

 01-17 03:15:44.537: E/AndroidRuntime(2203): FATAL EXCEPTION: main
 01-17 03:15:44.537: E/AndroidRuntime(2203): Process: com.example.dester, PID: 2203
 01-17 03:15:44.537: E/AndroidRuntime(2203): java.lang.NoClassDefFoundError: de.keyboardsurfer.android.widget.crouton.Style
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at com.example.dester.MainActivity.onCreate(MainActivity.java:17)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.Activity.performCreate(Activity.java:5231)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.os.Handler.dispatchMessage(Handler.java:102)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.os.Looper.loop(Looper.java:136)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at android.app.ActivityThread.main(ActivityThread.java:5017)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at java.lang.reflect.Method.invokeNative(Native Method)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at java.lang.reflect.Method.invoke(Method.java:515)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
 01-17 03:15:44.537: E/AndroidRuntime(2203):    at dalvik.system.NativeStart.main(Native Method)

当我第一次收到错误时,我认为它一定很简单,所以我再次清理并重建它,但仍然遇到同样的错误。然后我搜索了有关信息java.lang.NoClassDefFoundError,我发现它与 VM 没有找到要求加载的类有关。在这种情况下,这将是 Style 类。

我在这上面花了将近 24 小时,并尝试了很多解决方案,但都无济于事。

以防万一,我的 java 编译器合规级别是 1.6,我使用 JRE6 谢谢

4

5 回答 5

2

Crouton 1.8.3 has been released and rolled back to Java 6 source compatibility. Using this version should solve the issue.

于 2014-02-04T15:41:50.480 回答
2

如果您不需要 Crouton 1.8.2 中的任何新功能,请尝试 1.8.1 ( https://github.com/keyboardsurfer/Crouton/wiki/Changelog )。我有完全相同的问题,但是当我使用 1.8.1 时一切正常。我也一直在努力解决同样的问题,但还没有找到解决方案。我想知道它是否与它现在使用 Java 1.7 的事实有关......

于 2014-01-18T13:12:00.327 回答
0

这可能是由于您的构建系统与 jar 文件的创建方式不兼容。Crouton 库仅包含一个包,因此很容易将其添加到您的应用程序中并摆脱 jar。只需在项目中此文件夹下添加代码即可。您只需要最新的 SDK 就可以了。

于 2014-02-04T13:25:49.150 回答
0

转到Project->Properties->Java Build Path比选择Order and export选项卡。选中 android-support-v4.jar 库并将其置于列表顶部。然后清理并重建项目。

于 2014-01-17T09:00:27.950 回答
0

右键单击您的项目> 选择Build Path> Configure Build Path> 转到Order & Export Tab并检查crouton-1.8.2.jar(您为 crouton 添加的 jar)最后OK

然后尝试清理项目并再次运行。

于 2014-01-17T08:46:28.063 回答