12

サードパーティの 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 に入っています。なぜエラーが発生するのですか????

4

2 に答える 2

0

プロジェクトがライブラリと互換性のあるタイプapkまたはその他のタイプであることを確認してください。デフォルトのタイプは依存関係を無視します。apklibjar apklib

<project>

    <modelVersion>4.0.0</modelVersion>

    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <packaging>apk</packaging>
...
</project>
于 2016-07-27T08:50:57.390 に答える
0

スコープを追加してみてください:

<dependency>
   <groupId>com.custom.service</groupId>
   <artifactId>custom-service</artifactId>
   <type>apklib</type>
   <version>1.0</version>
   <scope>compile</scope>
 </dependency>
于 2015-08-27T08:36:27.740 に答える