1

通常のJavaプロジェクトに依存するAndroidライブラリプロジェクトがあります(依存関係はJavaビルドパス>プロジェクトで設定されました。プロジェクトはの「注文とエクスポート」タブでチェックされました)。here で説明されているように、サーブレット プロジェクトの libs フォルダーにドロップする jar を生成します。サーブレットがプロジェクトからのメソッドを必要とするまで、すべて問題ありませんでした:MonitoringModelHelpersHelpersMonitoringModelMonitoringModelHelpers

Caused by: java.lang.NoClassDefFoundError: gr/uoa/di/java/helpers/Utils
 at gr.uoa.di.monitoring.model.Battery$BatteryFields$1.parse(Battery.java:59)
 at gr.uoa.di.monitoring.model.Battery$BatteryFields$1.parse(Battery.java:1)
 at gr.uoa.di.monitoring.model.Battery.parse(Battery.java:117)
 ... 24 more
Caused by: java.lang.ClassNotFoundException: gr.uoa.di.java.helpers.Utils
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)


そのとき、(から) エクスポートされた jar にはパッケージMonitoringModelがない ことに気付きました。プロジェクトは jar を作成しないので、そのHelpersフォルダーをAdd Class Folderとして追加してみました)Helpersbin/


ここに画像の説明を入力

「注文とエクスポート」タブにも追加します:

ここに画像の説明を入力

しかし、まだ喜びはありません。

では、これをどのように設定すればよいですか?

RECAP :私が求めているのは、通常の Java プロジェクトを Android ライブラリ プロジェクトに追加し、これを何らかの方法で Android ライブラリ プロジェクトの jar にコンパイルする方法です。問題は、(Java) クラスがエクスポートされないことではなく、それらの Java クラスを使用するメソッドがjar で正しくコンパイルされないことです。したがって、それらが呼び出されると、上記の例外がスローされます。方法はこちらBattery$BatteryFields$1.parse

注意:Helpersプロジェクトをサーブレット プロジェクトに直接追加しても、例外は回避されませんMonitoringModel.parse()呼び出し時に後者がmonitoringmodel.jarHelpers.listToString()どこにも見つからない、例外がスローます
Helpers MonitoringModel

4

1 に答える 1

0

ヘルパー Java プロジェクトを独立してコンパイルし、通常の Java JAR のように JAR をエクスポートする必要があります。

次に、この JAR を Monitor Android Library LIBS フォルダーに追加する必要があります。

これで、Monitor Android ライブラリを別のプロジェクト ([Android ライブラリ] ボックスから) に追加できるようになり、必要なソースが含まれます。

問題は、一部の ADT バージョン以降、[プロジェクト] タブが参照されたプロジェクトをコンパイルしなくなったため、役に立たないことです。

于 2013-09-27T19:48:02.830 に答える