获取NoClassDefFoundError:android.os.AsyncTask

获取NoClassDefFoundError:android.os.AsyncTask,android,android-asynctask,Android,Android Asynctask,这个问题困扰了我一段时间,我找不到满意的解决办法 在Android emulator上创建特定对象的过程中,我多次(并非总是)得到NoClassDefFoundError:Android.os.AsynchTask 我已经尝试了许多方法多次删除和重新添加外部库,擦除仿真器,重新启动IntelliJ(工作了一次,但随后出现了相同的错误)。此时,我所要做的就是构造最基本的异步任务,但仍然会出现错误 以下是整个错误消息: 08-06 16:24:43.546: ERROR/AndroidRuntime

这个问题困扰了我一段时间,我找不到满意的解决办法

在Android emulator上创建特定对象的过程中,我多次(并非总是)得到NoClassDefFoundError:Android.os.AsynchTask

我已经尝试了许多方法多次删除和重新添加外部库,擦除仿真器,重新启动IntelliJ(工作了一次,但随后出现了相同的错误)。此时,我所要做的就是构造最基本的异步任务,但仍然会出现错误

以下是整个错误消息:

08-06 16:24:43.546: ERROR/AndroidRuntime(331): FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.os.AsyncTask
at com.myapp.activity.StatisticsActivity.onCreate(StatisticsActivity.java:79)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
模拟器运行2.2,我的minSDK是8。以下是违规代码:

public class StatisticsActivity extends TabActivity implements AsynchDataDisplay{
...
    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.statistics);

    StatisticsProvider sp = new StatisticsProvider();
...
    }
}
而StatisticsProvider对象是:

    private class StatisticsProvider extends AsyncTask{

    @Override
    protected Object doInBackground(Object... objects) {
        return null;
    }
}

尝试在StatisticsProvider中添加一个简单的构造函数并检查。

我想我已经破解了它

用于在我的应用程序中加载广告的线程会在早期抛出一个未捕获的异常,在某种程度上我无法100%理解,导致工作线程停止响应。当程序试图创建AsyncTask时,类装入器不工作


寓意是,去度假,然后带着新鲜的眼光回来。

好吧,看来谷歌play服务的一个版本出现了问题。看

看起来解决方法可能是添加:

try {
      Class.forName("android.os.AsyncTask");
}
catch(Throwable ignore) {
      // ignored
}
进入您的
应用程序#onCreate()

如果您还没有应用程序类,那么创建一个从
android.app.Application
扩展的类,然后

  • 将上述代码添加到其
    #onCreate()
  • 在AndroidManifest的application元素中添加对应用程序类的引用
    
    
    尝试了各种构造函数,但仍然存在相同的问题。我启动了一个新的2.3.1设备,它第一次工作正常,第二次就停止工作了。我开始觉得模拟器坏了。嗯。。。为什么
    NoClassFoundDefError
    用于AsyncTask而不是StatisticsProvider?您是如何发现的?非常有用,如果我的项目中没有单独的应用程序类,那么我应该在哪里编写此代码?我使用asynctask类来做一些后台处理。在我的一项活动中,我把它变成了一个内部课堂。请尽快回复。谢谢。创建一个从应用程序扩展的类,并在AndroidManifest中引用它。请参见上面的更改