0

我在计算机上有一个 Java (Android) 项目,当我在我的设备上运行它时,它运行得非常好。

在那之后,我不得不将该项目移动到另一台计算机上:相同的文件,相同的东西,任何修改过的东西。但是现在,当它运行时,我收到了这个错误:“FATAL EXCEPTION: main, java.lang.IllegalStateException: could not execute method of the Activity”

当我按下调用 onClick 方法的按钮时出现错误。如果我不按下那个按钮,一切都会顺利。

这是我的 LogCat

06-11 17:03:26.881: E/AndroidRuntime(15278): FATAL EXCEPTION: main
06-11 17:03:26.881: E/AndroidRuntime(15278): java.lang.IllegalStateException: Could not execute method of the activity
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.view.View$1.onClick(View.java:3044)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.view.View.performClick(View.java:3511)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.view.View$PerformClick.run(View.java:14105)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.os.Handler.handleCallback(Handler.java:605)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.os.Looper.loop(Looper.java:137)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.app.ActivityThread.main(ActivityThread.java:4424)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at java.lang.reflect.Method.invokeNative(Native Method)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at java.lang.reflect.Method.invoke(Method.java:511)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at dalvik.system.NativeStart.main(Native Method)
06-11 17:03:26.881: E/AndroidRuntime(15278): Caused by: java.lang.reflect.InvocationTargetException
06-11 17:03:26.881: E/AndroidRuntime(15278):    at java.lang.reflect.Method.invokeNative(Native Method)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at java.lang.reflect.Method.invoke(Method.java:511)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at android.view.View$1.onClick(View.java:3039)
06-11 17:03:26.881: E/AndroidRuntime(15278):    ... 11 more
06-11 17:03:26.881: E/AndroidRuntime(15278): Caused by: java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder
06-11 17:03:26.881: E/AndroidRuntime(15278):    at iv.AppInditta.DbWorker.NewServerGetActivityTypes(DbWorker.java:3076)
06-11 17:03:26.881: E/AndroidRuntime(15278):    at iv.AppInditta.InDitta.faseuno(InDitta.java:641)
06-11 17:03:26.881: E/AndroidRuntime(15278):    ... 14 more`

有谁知道如何解决这个运行时错误?这不可能是代码错误,我很确定,因为前一台计算机上的相同代码运行良好......

4

2 回答 2

0

经过长时间的搜索,我在论坛上查看了解决方案,

问题是通过对我拥有的库(在我的情况下是 gson)的引用给出的,这是不正确的。我以错误的方式将库添加到我的项目中。我在项目中用于实现库的过程是:

  1. 右键单击Eclipse中的项目
  2. 构建路径 > 配置构建路径...
  3. 在库部分中,单击添加外部 JAR...
  4. 在电脑中浏览,找到我要导入的库,点击确定并导入。

但是这个程序是不正确的!!!!

为了添加一个库并使其对项目可用(和工作)正确的程序是

  1. 在您的 Eclipse/Android 工作区项目中创建一个名为“libs”的新文件夹(如果您使用的是 Windows 操作系统,则可以在 Windows 资源管理器中创建)。
  2. 在 Eclipse 中,右键单击项目并选择“刷新”,这将刷新您的项目并添加“libs”文件夹
  3. 右键单击“libs”文件夹,选择“导入”>“常规”>“文件系统”。单击下一步,然后在您的电脑中浏览以找到要添加的库的父文件夹(注意选择库的父文件夹,而不是 library.jar),然后单击确定
  4. 单击库的目录名称(显示在左侧面板中)-不是复选框-
  5. 在右侧面板上将显示该文件夹中的 JAR 文件列表,选中您要安装的文件的复选框,然后单击完成(此操作会将库添加到您的项目中,现在您必须使其可用于项目代码)
  6. 右键单击您的项目,选择构建路径 > 配置构建路径...
  7. 在库选项卡中单击添加 JAR...,浏览您的项目并在您的 libs 文件夹中找到库,添加它。

现在该库可用并适用于您的项目。

这些步骤对我有用,如果您遇到同样的问题,我希望它们甚至对您也有用。

再见 ;)

于 2012-06-13T09:29:07.727 回答
0

这似乎是问题所在:

Caused by: java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder

所以我的猜测是你错过了 gson 库。或者,如果您在 Eclipse 中工作,请尝试对项目进行“清理”(项目 -> 清理)

于 2012-06-11T15:17:12.017 回答