通常のJavaプロジェクトに依存するAndroidライブラリプロジェクトがあります(依存関係はJavaビルドパス>プロジェクトで設定されました。プロジェクトはの「注文とエクスポート」タブでチェックされました)。here で説明されているように、サーブレット プロジェクトの libs フォルダーにドロップする jar を生成します。サーブレットがプロジェクトからのメソッドを必要とするまで、すべて問題ありませんでした:MonitoringModel
Helpers
Helpers
MonitoringModel
MonitoringModel
Helpers
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として追加してみました)Helpers
bin/
「注文とエクスポート」タブにも追加します:
しかし、まだ喜びはありません。
では、これをどのように設定すればよいですか?
RECAP :私が求めているのは、通常の Java プロジェクトを Android ライブラリ プロジェクトに追加し、これを何らかの方法で Android ライブラリ プロジェクトの jar にコンパイルする方法です。問題は、(Java) クラスがエクスポートされないことではなく、それらの Java クラスを使用するメソッドがjar で正しくコンパイルされないことです。したがって、それらが呼び出されると、上記の例外がスローされます。方法はこちら。Battery$BatteryFields$1.parse
注意:Helpers
プロジェクトをサーブレット プロジェクトに直接追加しても、例外は回避されません。MonitoringModel.parse()
呼び出し時に後者がmonitoringmodel.jar
のHelpers.listToString()
どこにも見つからない、例外がスローされます。Helpers
MonitoringModel