首页 \ 问答 \ Parcel Unmarshalling,抛出运行时异常(Parcel Unmarshalling, Runtime Exception is thrown)

Parcel Unmarshalling,抛出运行时异常(Parcel Unmarshalling, Runtime Exception is thrown)

我试图创建一个显示周期表的应用程序然后你可以点击每个元素带你到另一个屏幕看它的摩尔质量。 从那里你可以去另一个屏幕。 问题是每当我点击一个元素,而不是进入下一个屏幕时,我会得到一个运行时异常。 这将打印在堆栈跟踪中。 我如何解决这个问题,我仔细检查了Element类中实现parcelable的所有内容是否正确完成

03-15 14:26:01.714: E/AndroidRuntime(11104): FATAL EXCEPTION: main
03-15 14:26:01.714: E/AndroidRuntime(11104): Process: com.example.androidhive, PID: 11104
03-15 14:26:01.714: E/AndroidRuntime(11104): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidhive/com.example.thecookieclub.Home}: java.lang.RuntimeException: Parcel android.os.Parcel@382eb178: Unmarshalling unknown type code 3014757 at offset 300
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.access$800(ActivityThread.java:144)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Looper.loop(Looper.java:135)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.main(ActivityThread.java:5221)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at java.lang.reflect.Method.invoke(Native Method)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at java.lang.reflect.Method.invoke(Method.java:372)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
03-15 14:26:01.714: E/AndroidRuntime(11104): Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@382eb178: Unmarshalling unknown type code 3014757 at offset 300
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readValue(Parcel.java:2222)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readListInternal(Parcel.java:2520)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readArrayList(Parcel.java:1836)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readValue(Parcel.java:2167)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.BaseBundle.unparcel(BaseBundle.java:221)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Bundle.getParcelableArrayList(Bundle.java:848)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.content.Intent.getParcelableArrayListExtra(Intent.java:4868)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at com.example.thecookieclub.Home.onCreate(Home.java:37)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.Activity.performCreate(Activity.java:5933)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
03-15 14:26:01.714: E/AndroidRuntime(11104):    ... 10 more

万一我错过了什么,这里是实现Parcelable的类

public class Element implements Parcelable {

private double molarMass;
private String name;
private int ID;
private String symbol;

public Element (String elementName,  int a, double mass, String sym){
    name=elementName;
    molarMass=mass;
    ID= a;
    symbol=sym;
}

public Element(Parcel in) {
name=in.readString();
symbol=in.readString();
ID=in.readInt();
molarMass=in.readDouble();
}

public String getName (){

    return name;
}

public double getMass (){
    return molarMass;
}

public int getID (){

    return ID;
}

public String getSymbol (){

    return symbol;
}

public static final Parcelable.Creator<Element> CREATOR
= new Parcelable.Creator<Element>() {
    public Element createFromParcel(Parcel in) {
        return new Element(in);
    }

    public Element[] newArray(int size) {
        return new Element[size];
    }
};

@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
      dest.writeString (name);
       dest.writeInt (ID);
       dest.writeDouble (molarMass);
       dest.writeString (symbol);

}

/*public double calculate (double massInGrams){

double as=massInGrams/molarMass;
return as;

} * /

}


I tried to make an app that would display the periodic table and then you could click each element to take you to another screen to see its molar mass. From there you can go to another screen. The problem is that whenever I click on an element, instead of going to the next screen I get a runtime exception. This is printed in the stack trace. How do I solve the problem, I double checked that everything in the Element class which implements parcelable was done correctly

03-15 14:26:01.714: E/AndroidRuntime(11104): FATAL EXCEPTION: main
03-15 14:26:01.714: E/AndroidRuntime(11104): Process: com.example.androidhive, PID: 11104
03-15 14:26:01.714: E/AndroidRuntime(11104): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidhive/com.example.thecookieclub.Home}: java.lang.RuntimeException: Parcel android.os.Parcel@382eb178: Unmarshalling unknown type code 3014757 at offset 300
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.access$800(ActivityThread.java:144)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Looper.loop(Looper.java:135)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.main(ActivityThread.java:5221)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at java.lang.reflect.Method.invoke(Native Method)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at java.lang.reflect.Method.invoke(Method.java:372)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
03-15 14:26:01.714: E/AndroidRuntime(11104): Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@382eb178: Unmarshalling unknown type code 3014757 at offset 300
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readValue(Parcel.java:2222)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readListInternal(Parcel.java:2520)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readArrayList(Parcel.java:1836)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readValue(Parcel.java:2167)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.BaseBundle.unparcel(BaseBundle.java:221)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.os.Bundle.getParcelableArrayList(Bundle.java:848)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.content.Intent.getParcelableArrayListExtra(Intent.java:4868)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at com.example.thecookieclub.Home.onCreate(Home.java:37)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.Activity.performCreate(Activity.java:5933)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
03-15 14:26:01.714: E/AndroidRuntime(11104):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
03-15 14:26:01.714: E/AndroidRuntime(11104):    ... 10 more

Just in case I missed something, here is the class which implements Parcelable

public class Element implements Parcelable {

private double molarMass;
private String name;
private int ID;
private String symbol;

public Element (String elementName,  int a, double mass, String sym){
    name=elementName;
    molarMass=mass;
    ID= a;
    symbol=sym;
}

public Element(Parcel in) {
name=in.readString();
symbol=in.readString();
ID=in.readInt();
molarMass=in.readDouble();
}

public String getName (){

    return name;
}

public double getMass (){
    return molarMass;
}

public int getID (){

    return ID;
}

public String getSymbol (){

    return symbol;
}

public static final Parcelable.Creator<Element> CREATOR
= new Parcelable.Creator<Element>() {
    public Element createFromParcel(Parcel in) {
        return new Element(in);
    }

    public Element[] newArray(int size) {
        return new Element[size];
    }
};

@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
      dest.writeString (name);
       dest.writeInt (ID);
       dest.writeDouble (molarMass);
       dest.writeString (symbol);

}

/*public double calculate (double massInGrams){

double as=massInGrams/molarMass;
return as;

}*/

}


原文:https://stackoverflow.com/questions/29068244
更新时间:2023-08-18 12:08

最满意答案

是的,Android TV支持FCM。 图书馆和实施是一样的。

但是,由于电视机没有系统栏,因此它与平板电脑的功能不同。 在系统自动在系统栏上显示通知的情况下,它什么都不做。

在你的特定情况下,它会正常工作,因为你想要总是获得FCM消息,然后在后台处理它。


Yes, Android TV supports FCM. Libraries and implementation are the same.

However, it does not work the same as for phones as tablets, since the TV does not have a system bar. On the cases where the system will automatically display the notification on the system bar, it does nothing.

In your particular case, it will work fine, since you want to always get the FCM message and then process it on the background.

相关问答

更多

相关文章

更多

最新问答

更多
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • 电脑高中毕业学习去哪里培训
  • 电脑系统专业就业状况如何啊?
  • IEnumerable linq表达式(IEnumerable linq expressions)
  • 如何在Spring测试中连接依赖关系(How to wire dependencies in Spring tests)
  • Solr可以在没有Lucene的情况下运行吗?(Can Solr run without Lucene?)
  • 如何保证Task在当前线程上同步运行?(How to guarantee that a Task runs synchronously on the current thread?)
  • 在保持每列的类的同时向数据框添加行(Adding row to data frame while maintaining the class of each column)
  • 的?(The ? marks in emacs/haskell and ghc mode)
  • 一个线程可以调用SuspendThread传递自己的线程ID吗?(Can a thread call SuspendThread passing its own thread ID?)
  • 延迟socket.io响应,并“警告 - websocket连接无效”(Delayed socket.io response, and “warn - websocket connection invalid”)
  • 悬停时的图像转换(Image transition on hover)
  • IIS 7.5仅显示homecontroller(IIS 7.5 only shows homecontroller)
  • 没有JavaScript的复选框“关闭”值(Checkbox 'off' value without JavaScript)
  • java分布式框架有哪些
  • Python:填写表单并点击按钮确认[关闭](Python: fill out a form and confirm with a button click [closed])
  • PHP将文件链接到根文件目录(PHP Linking Files to Root File Directory)
  • 我如何删除ListView中的项目?(How I can remove a item in my ListView?)
  • 您是否必须为TFS(云)中的每个BUG创建一个TASK以跟踪时间?(Do you have to create a TASK for every BUG in TFS (Cloud) to track time?)
  • typoscript TMENU ATagParams小写(typoscript TMENU ATagParams lowercase)
  • 武陟会计培训类的学校哪个好点?
  • 从链接中删除文本修饰(Remove text decoration from links)