質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

909閲覧

KotlinでParcelizeを用いたオブジェクトの値渡しがおかしい

HelpMi

総合スコア10

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1グッド

0クリップ

投稿2022/11/27 07:36

前提

KotlinでアプリSkywayを用いたアプリを制作していたところ、エラーが発生しました。
data class を用いたファイル(Struct.kt)内のクラスが原因かと思われます。

現状としては

  • intent間のオブジェクトの値渡しを実装したかった為、@Parcelizeを用いてdata classをソースコードのように作成しました。@RawValueがないとコンパイルできなかった為、書きました。
  • コンパイルして、このファイルを呼び出すことなどは成功。しかし、別画面に遷移した時になぜか以下のエラーメッセージが発生。

自分の考えとしてはエラーメッセージの6行目
at com.example.---.Struct$gameRoomInfo.writeToParcel(Unknown Source:7)
がおかしいかなと考えております。

Skywayのところがimportされているのにも関わらず、unknownとなっています。
data class で外部ライブラリの値渡しは不可能でしょうか?

ここが原因かは不明ですが、有識者の方ご教授いただけると幸いです。

実現したいこと

  • エラーなく動かしたい。

発生している問題・エラーメッセージ

2022-11-27 00:32:29.476 6935-6935/com.example.--- E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.---, PID: 6935 java.lang.IllegalArgumentException: Parcel: unknown type for value io.skyway.Peer.Peer@8efd770 at android.os.Parcel.getValueType(Parcel.java:2409) at android.os.Parcel.writeValue(Parcel.java:2308) at com.example.---.Struct$gameRoomInfo.writeToParcel(Unknown Source:7) at android.os.Parcel.writeParcelable(Parcel.java:2538) at android.os.Parcel.writeValue(Parcel.java:2439) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1799) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at androidx.fragment.app.FragmentState.writeToParcel(FragmentState.java:159) at android.os.Parcel.writeParcelable(Parcel.java:2538) at android.os.Parcel.writeValue(Parcel.java:2439) at android.os.Parcel.writeValue(Parcel.java:2316) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1799) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1799) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.Parcel.writeArrayMapInternal(Parcel.java:1265) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1799) at android.os.Bundle.writeToParcel(Bundle.java:1362) at android.os.Parcel.writeBundle(Parcel.java:1334) at android.os.Parcel.writeValue(Parcel.java:2433) at android.os.Parcel.writeValue(Parcel.java:2323) at android.os.BaseBundle.dumpStats(BaseBundle.java:1872) at android.os.BaseBundle.dumpStats(BaseBundle.java:1909) at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:150) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7898) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

該当のソースコード

Kotlin

1@Parcelize 2 data class gameRoomInfo ( 3 var peer: @RawValue Peer? = null, 4 var remoteStream: @RawValue MediaStream? = null, 5 var localStream: @RawValue MediaStream? = null, 6 var mediaConnection: @RawValue MediaConnection? = null, 7 var myUser: Struct.User? = null, 8 ...... 9 ) : Parcelable

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

HelpMi👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2022/11/27 08:08 編集

Skyway は知らないのですが… Peer (とか Stream とか Connection とか) なんてパーシャライズ出来るんでしょうか。 >@RawValueがないとコンパイルできなかった為、書きました というのも何かテキトウみたいですし。
HelpMi

2022/11/27 08:14

完全にできるものだと思っていました。 やっぱりできないんですかね?....
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問