2 Stimmen

Android-Build mit Ant in Jenkins: Ziel kann nicht aufgelöst werden

Ich versuche, ein Android-Projekt mit Ant in Jenkins zu erstellen, aber ich erhalte eine Ausnahme.

Ich kann diesen Fehler mit "sudo -u jenkins ant debug" in der Konsole reproduzieren.

/opt/android-sdk-mac_x86/tools/ant/build.xml:539: Projektauswahl 'android-17' konnte nicht aufgelöst werden
    at com.android.ant.GetTargetTask.execute(GetTargetTask.java:160)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Man könnte glauben, dass die Ursache dafür ist, dass es das sdk für 'android-17' nicht finden kann, aber wenn ich den gleichen Befehl mit meinem regulären Benutzer ausführe (ja, ich lasse Jenkins derzeit auf meinem Entwicklungssystem laufen, um sicherzustellen, dass es funktioniert), dann kompiliert es problemlos.

Vollständiges Protokoll des Jenkins-Builds:

Buildfile: /Users/Shared/Jenkins/Home/jobs/test1/workspace/build.xml

-check-env:
 [checkenv] Android SDK Tools Revision 21
 [checkenv] Installiert unter /opt/android-sdk-mac_x86

-setup:
     [echo] Projektname: 
  [gettype] Projekttyp: Anwendung

-pre-clean:

clean:
   [delete] Verzeichnis /Users/Shared/Jenkins/Home/jobs/test1/workspace/bin wird gelöscht
   [delete] Verzeichnis /Users/Shared/Jenkins/Home/jobs/test1/workspace/gen wird gelöscht
[getlibpath] Bibliotheksabhängigkeiten:
[getlibpath] Keine Bibliotheken
   [subant] Keine Teil-Builds zum Iterieren

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 21
 [checkenv] Installiert unter /opt/android-sdk-mac_x86

-setup:
     [echo] Projektname: 
  [gettype] Projekttyp: Anwendung

-set-debug-mode:

-debug-obfuscation-check:

-build-setup:
     [echo] Ermittele Build-Ziel für ...

BUILD FAILED
/opt/android-sdk-mac_x86/tools/ant/build.xml:5309 Projektauswahl 'android-17' konnte nicht aufgelöst werden

Gesamtzeit: 0 Sekunden
Bauschritt 'Ant aufrufen' als Fehler markiert
Fertig: FEHLER

4voto

Arran Punkte 111

Oh, ich habe es endlich herausgefunden.

Ich hatte die falschen Berechtigungen auf ANDROID_HOME/platforms

0voto

teoking Punkte 127

Ich habe gerade das gleiche Problem wie du festgestellt. Aber ich habe herausgefunden, dass es daran liegt, dass ich die build.prop,framework.aidl und sdk.properties aus dem Ordner android-15 entfernt habe (Mein Projekt hängt davon ab). Das Zurücksetzen dieser Dateien hat mein Problem gelöst.

0voto

Gehen Sie in Ihr ANDROID_HOME-Verzeichnis und setzen Sie Lese-Schreib-Berechtigungen für den Benutzer, mit dem Sie es versuchen. d.h. das Android SDK-Verzeichnis. (Im Fall von Jenkins müssen Sie Lese-/Schreibberechtigungen für den Jenkins-Benutzer geben. Wenn Sie sich nicht sicher sind, mit welchem Benutzer dann setzen Sie Lese-/Schreibberechtigungen für alle) zum Beispiel: In meinem Fall ANDROID_HOME= Benutzer/Lokalenutzer/android_sdk_macosx 1) Gehen Sie in den android_sdk_macosx-Ordner und setzen Sie Lese-Schreib-Berechtigungen für diesen und Unterordner. oder Sie können es auch für alle setzen. 2) Gehen Sie zu Jenkins und versuchen Sie erneut zu bauen. Es sollte funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X