App force以java.lang.NoClassDefFoundError关闭:android/os/AsyncTask

App force以java.lang.NoClassDefFoundError关闭:android/os/AsyncTask,android,webview,android-asynctask,Android,Webview,Android Asynctask,我们最近在应用程序中引入了OAuth登录。这意味着使用WebView对用户进行身份验证,然后使用AsyncTask进行必要的REST调用 不幸的是,在引入这种登录方法之后,我们收到了应用程序强制关闭的报告。这似乎与登录后执行的其他异步任务有关,但不幸的是,堆栈跟踪并没有告诉我们多少: java.lang.IllegalStateException: Could not execute method of the activity at android.view.View$1.onClick(Vi

我们最近在应用程序中引入了OAuth登录。这意味着使用WebView对用户进行身份验证,然后使用AsyncTask进行必要的REST调用

不幸的是,在引入这种登录方法之后,我们收到了应用程序强制关闭的报告。这似乎与登录后执行的其他异步任务有关,但不幸的是,堆栈跟踪并没有告诉我们多少:

java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3100)
at android.view.View.performClick(View.java:3627)
at android.view.View$PerformClick.run(View.java:14329)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4511)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3095)
... 11 more
Caused by: java.lang.NoClassDefFoundError: android/os/AsyncTask
at com.foo.bar.TransmissionActivity.transmit(TransmissionActivity.java:44)
... 14 more
我们通过使用RoboGuice中的RoboAsyncTask,而不是Android SDK中的AsyncTask,成功地修复了上述错误,但我们还有其他使用WebView的活动。WebView显然在其调用堆栈的某个地方使用了AsyncTask,错误日志中已开始显示与上面所示类似的错误:java.lang.NoClassDefFoundError:android/os/AsyncTask

错误发生在不同的设备和不同的Android版本上,没有明显的模式。我们试图自己复制错误,但没有任何运气


有什么想法吗?

构建设置可能有问题。已知src/gen的构建顺序会导致一些问题,称为lib的compat库的libs文件夹会在新sdk版本中给我带来一些问题

看看是否需要在eclipse中创建一个新项目,因为这是100%的android官方版本。添加一个webview和一个asynctask,然后使用您的项目对项目进行差异化。忽略src/gen/res。希望您会发现src/gen是以错误的顺序或类似的方式构建的


~Anders

当我在错误的时间和地点创建任务时,我也遇到了类似的问题。您能展示一下AsyncTask的代码示例吗?