Невозможно найти класс из библиотеки проекта библиотеки, когда maven построит мой проект

Я загрузил сторонний проект библиотеки 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

Этот класс находится в банке, Почему я получаю ошибку, тогда????

Ответ 1

Попробуйте добавить область действия:

<dependency>
   <groupId>com.custom.service</groupId>
   <artifactId>custom-service</artifactId>
   <type>apklib</type>
   <version>1.0</version>
   <scope>compile</scope>
 </dependency>

Ответ 2

Убедитесь, что ваш проект имеет тип apk или любой другой совместимый с apklib библиотеками. По умолчанию jar тип игнорирует зависимости apklib.

<project>

    <modelVersion>4.0.0</modelVersion>

    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <packaging>apk</packaging>
...
</project>