2

Eclipseを使用して、Androidアプリでgeotools(現在8.0-M3、2.7.3でもあります)ライブラリを使用したいと思います。(win7 prof、4gb ram)しかし、ビルドプロセスがクラッシュし、次のエラーが発生します

未処理のイベントループ例外Javaヒープスペース

Javaヒープスペースの問題は解決できるはずですが、それ以上の問題があるようです。(3GBで十分ですね)

私の最終的な目標は、OGCの「Web機能サービス」と「Webマップサービス」によって、geoserverでpostgrespostgisdbをリクエストできるようにすることです。

私はすでに日食のiniをに設定しました

--launcher.XXMaxPermSize 128m --launcher.defaultAction openFile -vmargs -Xms40m -Xmx3700m

Geotoolsは(jre6(1.6.0_24)と比較して)androidlibsが提供する以上のものを必要とします。

->そこで、jar全体をjre6フォルダーとjts-1.8.jarに加えてgeotools jarを別の(win)フォルダーにコピーします。(Maven(この場合は使用されていません!)自体がjts-1.1.3 libをロードしますが、違いはありますか?)jarフォルダー全体のサイズは約80Mbです。

->eclipseandroidプロジェクト構造に新しいフォルダーを作成します。

->jarファイルをwinフォルダーからEclipseにインポートします

-> jarをプロジェクトビルドパスに追加します(これはjavaをdxに移植する必要があります)(長い時間(日)の試行の後、私が知っている唯一の方法は、必要なすべてのクラスをアプリに提供することです。少なくともeclipseはそうではありません不足しているものにマークを付けます)。

コンパイル後、Eclipseコンソールの出力は次のようになります。

Dx警告:匿名内部クラスのInnerClasses属性を無視しています....。

いくつかのクラスのために。おそらくjrelibが原因です。

私のAndroidプロジェクトで必要なJavaライブラリをgeotoolsに提供する他のオプションはありますか?それとも、私が以下に述べた試験について何か考えがありますか?

PS:Androidの本では、不足しているクラス(およびそれらの依存関係)だけをjarファイルからコピーすることをお勧めします.....(おそらく新しいクラスを作成する方がよいでしょう)

私はすでにMavenプラグインを使用してみました。これは、geotoolsを使用する純粋なJavaプロジェクトで、またはgeotoolsを使用しない限りAndroidプロジェクトを処理するのでうまく機能します。mavenにgeotoolsを使用したandroidプロジェクトが含まれている場合、ライブラリはmavenによって読み込まれますが、androidは「Rクラスを手動で変更」のように言います...(元に戻せない、または再作成できない)

eclipseプロジェクトからMaven依存ライブラリ(必要なもので構成されている必要があります)をコピーする方法はありますか?(私は、winリポジトリフォルダーからjarをコピーできると思いましたが、他の多くのjarも含まれています)。

Androidは、C++またはその他のライブラリを使用できる「JavaNativeInterface」を提供します。libsの欠落/交差の問題を囲むオプションはありますか(私はまだJNIの経験がありません)?

アプリのコードはかなり短いですが、貼り付けるのに役立つ場合は。

4

1 に答える 1

2

私のAndroidプロジェクトで必要なJavaライブラリをgeotoolsに提供する他のオプションはありますか?

標準のJavaディストリビューションの一部であるが、Androidにはないクラスが必要な場合は、それらのクラスを必要としないようにgeotoolsを書き直す以外は、運が悪いです。

他のサードパーティのJavaライブラリの一部であるクラスが必要な場合は、それらのサードパーティのJavaライブラリをプロジェクトに追加します。

ジオツールの簡単な調査から、Androidで実行するには大幅に書き直す必要があると思います。

PS:Androidの本では、不足しているクラス(およびそれらの依存関係)だけをjarファイルからコピーすることを推奨しています

私の本はそうではありません。これをアドバイスする著者は、頭を調べる必要があります。

于 2011-11-24T14:31:25.980 に答える