問題タブ [parceler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2979 参照

android - Realm.io (Android) でパーセラー (@Parcel) を使用する

エラーを生成する次のコードがあります。Error:Parceler: Unable to find read/write generator for type io.realm.Realm for io.realm.RealmObject.realm

なくても問題なく動作していましたがextends RealmObject、Realmを使用してデータベースに簡単に配置したいと考えています。RealmObject フィールドを除外して、@Parcel の基本的な pojo フィールドのみを使用する方法はありますか?

0 投票する
0 に答える
766 参照

java - GSON カスタム フィールドを Parcel に逆シリアル化する

サーバーと通信するためにRetrofitライブラリとParcelerライブラリを使用しています。

サーバーには、次の 2 つの API メソッドがあります。

/api/metadata/{id}次の JSON を返すGET

次の JSON を期待する POST /api/metadata/{id}

それは歴史的な理由によるものであり、変えることはできません。

私の Android アプリケーションでは、次の方法で Retrofit を宣言します。

パーセル クラスは次のように定義されます。

メタデータ:

ジオメトリポイント:

アプリケーション全体で Metadata クラスを使用したいと考えています。サーバーにクエリを実行し、メタデータを受信して​​更新し、サーバーに送信したいと考えています。明らかに、GET と POST ではメタデータの形式が異なります。そのため、GET を受け取った時点で POST 形式に変換してもらいたいと考えています。

私の質問は、Retrofit と Parceler がlocationパラメータを認識し、JSON からデシリアライズするが、'location_latitude' と 'location_longitude' に分解できるメソッドをMetadata介してクラスに書き込むことができるように、注釈を何らかの方法で宣言できるかどうかです。setLocation()

これは、目的のメタデータ クラスの擬似コードです。

それとも、私はばかげているだけなのでしょうか (昨日、Retrofit、Parceler、および GSON 認識を文字通り取り上げました)、2 つのメタデータ クラスを作成MetadataExternalMetadataInternal、サーバーへの受信と送信に使用する必要がありますか?

0 投票する
2 に答える
1195 参照

java - バンドルとして送信するときにオブジェクトのラップを解除しようとしています

@Parcelable を使用した複雑なクラスがあります (Parceler ライブラリhttps://github.com/johncarl81/parcelerを使用しています)

このクラスには他にも多くのオブジェクトがありますが、それらはほとんどが文字列です。

次のようにメインのアクティビティにラップしました。

イベントのリスト (eventList) があり、リスト内の 1 つのオブジェクトを別のアクティビティに送信しようとしています。

次のような他のアクティビティでそれをアンラップします。

私の onCreate() の中で

しかし、パラメーターの下に次のような赤い線が表示されます。

0 投票する
2 に答える
1473 参照

java - Java Parceler の問題

REST サーバーに接続する Android アプリを作成していますが、サーバーの応答をモデル化するクラスで次のエラーが発生します。

エラー:(16, 15) エラー: パーセラー: com.myapp.ServerResponse.result のタイプ java.lang.Object の読み取り/書き込みジェネレーターが見つかりません

エラーは、ジェネリック型 E を使用しているためだと思います。 ServerResponse.java は次のとおりです。

この問題を解決する方法はありますか?

0 投票する
3 に答える
7441 参照

android - Android で Parceler を使用する

Android用のParcelerライブラリを試しています。これまでのところ、ドキュメントの単純なサンプルを使用して、同じエラーが 1 つしかありませんでした。

でクラッシュする

何が恋しいですか?

0 投票する
1 に答える
839 参照

android - レトロフィットとパーセラー ライブラリを使用して Json を解析する方法

このブログ投稿http://blog.robinchutaux.com/blog/a-smart-way-to-use-retrofit/によると、より良い方法は、シリアライズ可能ではなくパーセル可能で解析することです。

しかし、Parceler ライブラリ ( https://github.com/johncarl81/parceler )を使用して解析をカスタマイズするにはどうすればよいですか?

GSON ライブラリでは、次のように実行できます。

そして、次のように GsonBuilder を構成します。

問題は、Retrofit と Parceler ライブラリを使用して json 文字列を解析する方法です。たとえば、次のモデルを持つ 2 つのオブジェクトが必要です。

これを解析する必要があります:

0 投票する
1 に答える
1349 参照

android - minifyEnabled で Android Parceler ライブラリを使用する

パーセラー ライブラリを使用するプロジェクトをミニファイしようとすると、 proguardからの多くの警告のためにリリース apk をビルドできません。例えば:

警告: org.parceler.transfuse.gen.FilerResourceWriter: 参照されているクラス javax.tools.FileObject が見つかりません

私は、このメッセージで報告されたライブラリのほとんどを利用していません。私が知りたいのは、誰かがこの問題に遭遇して解決できたかどうかです。-dontwarn を使用してすべてのメッセージを抑制しようとしましたが、正しくないようです。さらに、まれにアプリがクラッシュすることもあります (これにより、警告メッセージの一部は実際に正しいと思いますが、ライブラリが必要です)必要なクラスを自動的に保持します)。

私のgradleスクリプトは次のとおりです。