サードパーティの Android ライブラリ プロジェクトをダウンロードしました。このプロジェクトには、Java クラス ファイルは含まれていませんが、フォルダーの下にjarファイルが含まれています。libs/
libs/
- CustomService.jar
res/
-…
pom.xml
このライブラリ プロジェクトは、apklibアーカイブにビルドすることができます。私はそれを構築し、このアーカイブをローカルのmavenリポジトリにインストールしました。
次に、自分の Android プロジェクトで、このapklibプロジェクトの依存関係を追加しました。
<dependency>
<groupId>com.custom.service</groupId>
<artifactId>custom-service</artifactId>
<type>apklib</type>
<version>1.0</version>
</dependency>
私の Java コードでは、CustomService.jarのクラスを使用しましたが、プロジェクトをビルドすると、常に次のエラーが発生します。
[ERROR] package com.custom.service.user does not exist
[ERROR] location: class com.my.app.MyClass
[ERROR] /Users/Johon/MyApp/src/main/java/com/my/app/MyClass.java:[34,17] cannot find symbol
[ERROR] symbol: variable UserService
UserService
上記のエラーは、ライブラリ apklib アーカイブからクラスが見つからないことを訴えています。次に、コマンドでライブラリ jar ファイルの内容を確認しました。
jar tf CustomService.jar
クラスがライブラリ プロジェクトのCustomService.jarにあることがわかります
com/custom/service/user/UserService.class
このクラスは jar に入っています。なぜエラーが発生するのですか????