Krótko summerized, mój struktury projektu jest jak następuje:
- i B są android lib -projects gdzie B zależy
- C (normalny projektu Android) zależy B
- T jest testowy projekt CNieudane zautomatyzowane Android UI-Testy na Jenkins-Server z powodu skomplikowanych zależnościach lib-projektowych głównego projektu (ów)
mam odpowiednio dwa projekty na moim serwerze Jenkins jeden dla C i jeden dla T, które mają swój własny scenariusz budować, używając właściwie tylko android i mrówek poleceń. Więc nie ma problemu z kompilacją C, ale nie mogę uzyskać kompilacji pracy z T.
"Praca" powinna oznaczać, że w zależności od skryptu nie kompiluje się lub kończy się niepowodzeniem w czasie wykonywania ze względu na brakujące klasy, które w rzeczywistości nie mogą być lub nie przechodzą fazy dekompresji z powodu dodawania duplikatów.
Jest więc jasne, że coś jest nie tak z zależnościami, ale ciekawą rzeczą jest to, że działa bardzo dobrze na lokalnej maszynie z eclipse & na emulatorze.
Tak oto przykładowy kod skrypt powłoki, które rzeczywiście powinny działać i tworzyć plik apk:
cd project-test
android update test-project -m ../projectC -p .
ant clean debug
Powoduje to niestety, że niektóre z klas od B, że jestem również zamiar testy, nie udało się znaleźć od kompilatora java i ja się zawsze błąd tak:
...
[javac] Compiling 14 source files to /home/mehmed/git/project/test-project/bin/classes
[javac] SomeActivityTest.java:8: package com.mydomain.portal.android.project.activity does not exist
[javac] import com.mydomain.portal.android.project.activity.SomeClass1;
[javac] ^
[javac] SomeActivityTest.java:9: package com.mydomain.portal.android.project.data does not exist
[javac] import com.mydomain.portal.android.project.data.SomeClass2;
[javac] ^
[javac] SomeActivityTest.java:10: package com.project.portal.android.project.util does not exist
[javac] import com.mydomain.portal.android.project.util.SomeClass3;
[javac] ^
...
próbowałem prawie wszystko, co możliwe, aby naprawić, nawet ręcznie edytując plik project.properties i tym właśnie B lub B i C w tym samym czasie, co lib projekty jak ten:
cd project-test
android update test-project -m ../projectC -p .
echo "android.library.reference.1=../projectB" >> project.properties
# or even also projectA:
echo "android.library.reference.2=../projectA" >> project.properties
ant clean debug
co skutkuje tym razem w Dexing błędy z powodu dwóch egzemplarzach dodawanie klas z lib projekty.
Czy ktoś ma jakieś pomysły na temat naprawy? Dzięki za pomoc z góry!
dziękuję za odpowiedź, bardzo mi pomogło, że udało mi się naprawić błąd. niestety pojawił się kolejny błąd. proszę zobaczyć moją odpowiedź na http://b.android.com/21720 –