2015-08-14 12 views
10

ich eine 3rd-Party-Android-Bibliothek-Projekt heruntergeladen haben, enthält das Projekt keine Java-Klasse-Datei, sondern eine jar Datei unter libs/ Ordner:nicht die Klasse aus Bibliothek Projekt jar finden können, wenn Maven mein Projekt bauen

libs/ 
    - CustomService.jar 
res/ 
    -… 
pom.xml 

Dieses Bibliotheksprojekt kann unter apklib archiviert werden. Ich baute es & Ich habe dieses Archiv in meinem lokalen Maven Repository installiert.

Dann in meinem eigenen Android-Projekt habe ich die Abhängigkeit dieses apklib Projekt hinzugefügt:

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

In meinem Java-Code, habe ich die Klasse aus dem CustomService.jar, verwenden aber wenn ich maven mein Projekt baue ich folgende Fehlermeldung ständig erhalten:

[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 

der obige Fehler beklagt, dass es nicht die UserService Klasse aus der Bibliothek einer finden pklib Archiv. Dann überprüfte ich den Inhalt der Bibliothek JAR-Datei mit dem Befehl:

jar tf CustomService.jar

Ich sehe, dass die Klasse in ist CustomService.jar des Bibliotheksprojekt

com/custom/service/user/UserService.class 

Diese Klasse ist in das Glas, Warum bekomme ich dann den Fehler ??

+2

Ich bezweifle, dass jemand Ihre Frage zu diesem Zeitpunkt beantworten kann, weil fast jeder mit grandle + .aar statt maven + .apklib jetzt. – Dmide

+1

apklib ist veraltet. Versuchen Sie stattdessen, aar-Datei zu generieren http://simpligility.github.io/android-maven-plugin/aar.html und dann Abhängigkeit hinzufügen aar –

+0

Könnten Sie bitte Ihre Maven-Protokolle über die Installation von Custom-Service.jar zu teilen Ihr lokales Repository? Es scheint mir, dass Abhängigkeitseigenschaften falsch sein können. – saver

Antwort

0

Versuchen Umfang hinzuzufügen:

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

Der Kompilierbereich ist standardmäßig in Maven, daher hat das Hinzufügen keinen Effekt. –

0

Ihr Projekt apk oder jede andere Art von Typ kompatibel mit apklib Bibliotheken Stellen Sie sicher. Standard jar Typ ignoriertapklib Abhängigkeiten.