Android:IllegalStateException:无法执行活动的方法

时间:2012-06-11 15:12:23

标签: android button error-handling logcat

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

之后我不得不将该项目移动到另一台计算机上:相同的文件,相同的东西,任何修改过的东西。但是现在,当它运行时我得到这个错误:“FATAL EXCEPTION:main,java.lang.IllegalStateException:无法执行活动的方法”

当我按下调用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`

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

2 个答案:

答案 0 :(得分:0)

这似乎是问题所在:

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

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

答案 1 :(得分:0)

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

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

  1. 右键单击Eclipse中的项目
  2. 构建路径>配置构建路径...
  3. 在“库”部分中,单击“添加外部JAR ...”
  4. 在计算机中浏览并找到我要导入的库,单击“确定”并导入它。
  5. 但这个程序是不正确的!!!!

    添加库并使其可用(并且正常工作)项目正确程序

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

      这些步骤对我有用,如果你有同样的问题,我希望它们甚至可以为你工作。

      再见;)