Tôi đã tải một dự án thư viện Android bên thứ 3, dự án không chứa tập tin lớp java nhưng một jar tập tin dưới libs/
thư mục:Không thể tìm thấy những lớp từ jar thư viện của dự án khi maven xây dựng dự án của tôi
libs/
- CustomService.jar
res/
-…
pom.xml
Dự án thư viện này có thể được xây dựng thành apklib lưu trữ. Tôi đã xây dựng nó & Tôi đã cài đặt lưu trữ này vào kho lưu trữ maven cục bộ của mình.
Sau đó, trong dự án Android của riêng tôi, tôi đã thêm sự phụ thuộc của dự án này apklib:
<dependency>
<groupId>com.custom.service</groupId>
<artifactId>custom-service</artifactId>
<type>apklib</type>
<version>1.0</version>
</dependency>
Trong mã Java của tôi, tôi đã sử dụng các lớp từ CustomService.jar, nhưng khi Tôi maven xây dựng dự án của tôi, tôi liên tục nhận được lỗi sau:
[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
Lỗi trên phàn nàn rằng nó không thể tìm thấy lớp học UserService
từ thư viện lưu trữ pklib. Sau đó, tôi đã kiểm tra nội dung của các tập tin jar thư viện bằng lệnh:
jar tf CustomService.jar
Tôi thấy rằng lớp là trong CustomService.jar của dự án thư viện
com/custom/service/user/UserService.class
Lớp này là trong các jar, Tại sao tôi nhận được lỗi sau đó ????
Tôi nghi ngờ bất kỳ ai cũng có thể trả lời câu hỏi của bạn tại thời điểm này, vì hầu hết mọi người đều sử dụng gradle + .aar thay vì maven + .apklib ngay bây giờ. – Dmide
apklib không được dùng nữa. Hãy thử tạo tệp aar thay vì http://simpligility.github.io/android-maven-plugin/aar.html và sau đó thêm phụ thuộc vào aar –
Bạn có thể chia sẻ nhật ký Maven của mình về cài đặt Custom-service.jar để kho lưu trữ cục bộ của bạn? Dường như với tôi rằng các thuộc tính phụ thuộc có thể sai. – saver