2

このStackOverflowQ&Aで提案されてTreeMapいるように、Androidアプリでをシリアル化して、に保存できるようにしようとしていました。のためですが、とにかくチャンスをつかみました。重要なのは、Apache Pigプロジェクトのクラスを使用して、TreeMapを文字列にシリアル化し、共有設定のそのデータ型で保存することです。SharedPreferencesArrayListObjectSerializer

ただし、Hadoopを使用せずに.jarをインポートするとすぐに、多くのエラーが発生し始めました。エミュレーターでアプリを実行すると(Eclipseを使用)、IDEの下部にあるステータスバーが「[アプリ名]を100%起動しています...」というメッセージを通過することはありません。しばらくすると、次のように表示されます。

ここに画像の説明を入力してください

もう少し待つと、さらに多くのダイアログボックスが重なり合ってポップアップします。

ここに画像の説明を入力してください

私の質問は次のとおりです。

  1. 何が起こっているのですか、なぜこれが起こっているのですか?これはApachePigのバグでしょうか?
  2. シリアル化に使用できる代替ライブラリはありTreeMapますか?今のところ、私の回避策は、このチュートリアルで説明されているように、自分でシリアル化し、共有設定とは別のデバイスの内部メモリにあるファイルに保存することです。
4

2 に答える 2

1

eclipse.iniファイルを開いて、次のパラメータを変更してみてください。

--launcher.XXMaxPermSize 512m

-XX:MaxPermSize = 256m

-Xms512m

-Xmx1024m

于 2012-09-03T04:47:35.290 に答える
1

解決策は、AndroidアプリでApachePigを使用しないことです。これは本当に悪い動きです。Apache Pigはビッグデータプロジェクト用に最適化されており、実行するには膨大な物理リソースが必要です。オブジェクトをシリアル化するためにその1つのクラスだけが必要な場合は、それをインポートする価値はありません。

アプリの参照ライブラリからPigを削除しただけで、アプリはEclipseで再び正しく起動しました。

于 2012-10-12T04:06:28.843 に答える