2016-09-18 2 views
1

私はParcelableクラスを持っていて、そのデータメンバーはStrings、Integers、Booleans、Datesで構成されています。 、および同じ種類のもので構成されている他のParcelableオブジェクトが含まれます。しかし、ツリーの最後では、Strings、Integers、Booleans、およびDates(java.util.Date)のみです。

私は@EActivity@Extraというentityを持っています。これはこれらのパーセルブルオブジェクトの1つです。

私は@EFragment@FragmentArgといい、entityとも呼ばれます。アクティビティを起動すると、entityをアクティビティに渡し、onCreateにアクティビティを渡します。

しかし、私は意味をなさないこのWEIRD例外を取得:私の値のどれもがandroid.text.Layoutを行うには何も持っていない

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.app/ 
com.my.app.NavControllerActivity_}: java.lang.IllegalArgumentException: 
    is not a constant in android.text.Layout$Alignment 

、それらはすべてちょうどjava.lang.Stringオブジェクトです。

私は下の全体のスタックトレースを入れますが、それは私のコードを離れたポイントは、Androidのアノテーションによって生成されたNavControllerActivity_コードにここにある:ここで

private void injectExtras_() { 
    Bundle extras_ = getIntent().getExtras(); 
    if (extras_!= null) { 
     if (extras_.containsKey(ENTITY_EXTRA)) { // THIS CALL EVENTUALLY LEADS TO THE EXCEPTION 
      this.entity = extras_.getParcelable(ENTITY_EXTRA); 
     } 
     if (extras_.containsKey(ROOT_FRAGMENT_CLASS_EXTRA)) { 
      this.rootFragmentClass = ((Class) extras_.getSerializable(ROOT_FRAGMENT_CLASS_EXTRA)); 
     } 
     if (extras_.containsKey(ROOT_FRAGMENT_NAME_EXTRA)) { 
      this.rootFragmentName = extras_.getString(ROOT_FRAGMENT_NAME_EXTRA); 
     } 
    } 
    setupViews(); 
} 

は、私が活動を起動する方法です。

ここで
NavControllerActivity_.intent(this) 
    .rootFragmentClass(EditAnimalFragment_.class) 
    .entity(entity) 
    .start(); 

はフルスタックトレースです:

FATAL EXCEPTION: main 
Process: com.my.app, PID: 30978 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.app/com.my.app.NavControllerActivity_}: java.lang.IllegalArgumentException: is not a constant in android.text.Layout$Alignment 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.IllegalArgumentException: is not a constant in android.text.Layout$Alignment 
    at java.lang.Enum.valueOf(Enum.java:200) 
    at android.text.Layout$Alignment.valueOf(Layout.java:2017) 
    at android.text.style.AlignmentSpan$Standard.<init>(AlignmentSpan.java:33) 
    at android.text.TextUtils$1.createFromParcel(TextUtils.java:711) 
    at android.text.TextUtils$1.createFromParcel(TextUtils.java:689) 
    at android.os.Parcel.readCharSequence(Parcel.java:1659) 
    at android.os.Parcel.readValue(Parcel.java:2261) 
    at android.os.Parcel.readArrayMapInternal(Parcel.java:2592) 
    at android.os.BaseBundle.unparcel(BaseBundle.java:221) 
    at android.os.BaseBundle.containsKey(BaseBundle.java:269) 
    at com.my.app.NavControllerActivity_.injectExtras_(NavControllerActivity_.java:87) 
    at com.my.app.NavControllerActivity_.init_(NavControllerActivity_.java:46) 
    at com.my.app.NavControllerActivity_.onCreate(NavControllerActivity_.java:39) 
    at android.app.Activity.performCreate(Activity.java:6237) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:148)  
    at android.app.ActivityThread.main(ActivityThread.java:5417)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
+0

エンティティには文字列のみが含まれていますか? stracktraceから、その逆直列化が間違っているSpannableStringがあるようです。 – WonderCsabo

+0

含まれているすべてのParcelableオブジェクトを調べますが、SpannableStringがある場合は、私以外の場所から来ているはずです。私はormliteを使ってdbの値をオブジェクトに読み込んでいますが、OrmliteがSpannableStringsを返すということは狂っているようです。 –

答えて

1

は@Wをお願いします私のパーセル化コードとオブジェクトがパーセル化されていることについて私の前提に疑問を投げかけてきたonderCsabo。私は問題を修正したいくつかのコード変更を行い、実際に間違っていたことについての私の前提があります。

私が作成したエラーは、私のParcel in/outコードにありました。私は小包に20の欄を書いていましたが、小包から読むと、私は15欄しか読んでいませんでした。インコードがアウトコードにマッチしていることを確認して、問題を解決しました。

私は起こっていたことは、解凍するデータがまだ解凍されていて、無関係なように見える例外をスローする必要があった別のアイテムを解凍していたからです。

関連する問題