首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException

ClassNotFoundException
EN

Stack Overflow用户
提问于 2011-07-14 16:11:26
回答 1查看 1.6K关注 0票数 2
代码语言:javascript
复制
07-14 11:58:28.160: WARN/Intent(1911): Failure filling in extras
07-14 11:58:28.160: WARN/Intent(1911): java.lang.RuntimeException: Parcelable encounteredClassNotFoundException reading a Serializable object (name = ams.gelato.api.TaskScheduler$Task)
07-14 11:58:28.160: WARN/Intent(1911):     at android.os.Parcel.readSerializable(Parcel.java:1890)
07-14 11:58:28.160: WARN/Intent(1911):     at android.os.Parcel.readValue(Parcel.java:1761)
07-14 11:58:28.160: WARN/Intent(1911):     at android.os.Parcel.readMapInternal(Parcel.java:1947)
07-14 11:58:28.160: WARN/Intent(1911):     at android.os.Bundle.unparcel(Bundle.java:169)
07-14 11:58:28.160: WARN/Intent(1911):     at android.os.Bundle.putAll(Bundle.java:242)
07-14 11:58:28.160: WARN/Intent(1911):     at android.content.Intent.fillIn(Intent.java:4853)
07-14 11:58:28.160: WARN/Intent(1911):     at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:194)
07-14 11:58:28.160: WARN/Intent(1911):     at com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:176)
07-14 11:58:28.160: WARN/Intent(1911):     at android.app.PendingIntent.send(PendingIntent.java:400)
07-14 11:58:28.160: WARN/Intent(1911):     at com.android.server.AlarmManagerService$AlarmThread.run(AlarmManagerService.java:645)
07-14 11:58:28.160: WARN/Intent(1911): Caused by: java.lang.ClassNotFoundException: ams.gelato.api.TaskScheduler$Task
07-14 11:58:28.160: WARN/Intent(1911):     at java.lang.Class.classForName(Native Method)
07-14 11:58:28.160: WARN/Intent(1911):     at java.lang.Class.forName(Class.java:237)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:2604)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1860)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:840)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2080)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:943)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2299)
07-14 11:58:28.160: WARN/Intent(1911):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2254)
07-14 11:58:28.160: WARN/Intent(1911):     at android.os.Parcel.readSerializable(Parcel.java:1884)
07-14 11:58:28.160: WARN/Intent(1911):     ... 9 more
07-14 11:58:28.160: WARN/Intent(1911): Caused by: java.lang.NoClassDefFoundError: ams.gelato.api.TaskScheduler$Task
07-14 11:58:28.160: WARN/Intent(1911):     ... 19 more
07-14 11:58:28.160: WARN/Intent(1911): Caused by: java.lang.ClassNotFoundException: ams.gelato.api.TaskScheduler$Task in loader dalvik.system.PathClassLoader@4001b4f8
07-14 11:58:28.160: WARN/Intent(1911):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
07-14 11:58:28.160: WARN/Intent(1911):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
07-14 11:58:28.160: WARN/Intent(1911):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
07-14 11:58:28.160: WARN/Intent(1911):     ... 19 more

当试图将可序列化的对象传递给意图时,我会得到此异常。

代码语言:javascript
复制
package ams.gelato.api;

imports...
...


public class TaskScheduler implements ITaskScheduler{

    List<Task> tasks = new ArrayList<Task>();
    Context context = null;
    Intent intent= null;
    AlarmManager am = null;

    public TaskScheduler(Context c){
        context = c;
        intent = new Intent(context,TaskReceiver.class);
        am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

    }

    @Override
    public boolean RunTaskAtTime(ITask _task, Date time) {
            Intent newIntent = new Intent(intent);
            newIntent.putExtra("task", new Task(_task));
            am.set(AlarmManager.RTC_WAKEUP, time.getTime(), PendingIntent.getBroadcast(context, 0, newIntent, PendingIntent.FLAG_UPDATE_CURRENT));
            return true;

    }

public static class Task implements ITask,Serializable{


    ITask task;

    public Task(ITask t){  
          task = t;
    }



    @Override
    public void runTask(){

    }
}

这是我的任务调度程序的源代码。问题中的链接是;newIntent.putExtra(“任务”,新任务(_task));--我不知道为什么会抛出这些异常,有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2011-07-14 16:56:50

如果你想传递一个任务对象,你必须这样做

公共类任务在这里实现Parcelable{ ..。实现方法}

看这个样本

http://blog.cluepusher.dk/2009/10/28/writing-parcelable-classes-for-android/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6696449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档