2010-08-08 10 views
7

I przestrzegać instrukcji tutaj, w jaki sposób utworzyć projekt biblioteki Androida i użyć go w aplikacji Android:plik R.java od projektu biblioteka Android nie importowania do aplikacji projektu

http://developer.android.com/guide/developing/eclipse-adt.html

ale jest nie działa. Widzę, że projekt biblioteczny został dodany do mojej aplikacji, ale nie mogę w nim nic dodać, ponieważ nie będzie on budowany. Plik R.java z biblioteki NIE jest dodawany do mojego projektu aplikacji, więc projekt lib zawiera mnóstwo błędów, wszędzie tam, gdzie próbuje odwoływać się do własnego pliku R.java.

Nie wiem, czy to ma z tym coś wspólnego, ale w konsoli są komunikaty stwierdzające, że istnieje "Brak identyfikatora zasobu dla atrybutu" X "w pakiecie" Pakiet Lib ". ma kilka atrybutów, które można zdefiniować dla niestandardowego widoku, które napisałem w tym komunikacie konsoli .Biblioteka jest w porządku, a ja nie dostaję tych wiadomości w konsoli, dopóki nie podłączę biblioteki do mojej aplikacji , więc nie wiem co z tym jest,

Naprawdę chciałbym, żeby to zadziałało, spędziłem na nim dwa całe dni, bezskutecznie .Przy proponuj wszelkie pomysły, które możesz potrzebować!

+0

Mam ten sam problem i nie używam atrybutów niestandardowych. Chcę tylko, aby moje biblioteki R były widoczne w mojej głównej aplikacji. Wygląda na to, że Eclipse poprawnie generuje plik _src, ale klasa R, wygenerowana w folderze bibliotek/gen, nie jest połączona wewnątrz mojego głównego projektu. Co powinienem zrobić? Nie chcę tego samemu łączyć, to by się zepsuło później. – Spidey

Odpowiedz

14

Odpowiedź Moim problemem było to, że biblioteka miała plik attrs.xml, który zdefiniował kilka niestandardowych atrybutów dla utworzonego niestandardowego widoku. Usunąłem plik attrs.xml i zakodowałem na stałe wartości w kodzie widoku niestandardowego, przebudowałem bibliotekę i rozwiązano problem.

To nie jest fajne, co oznacza, że ​​niestandardowe widoki z atrybutami niestandardowymi nie mogą być używane w bibliotekach. Mam nadzieję, że Google to naprawi.

+0

Nie używam żadnego pliku attrs.xml, ale moja aplikacja nie jest kompilowana, jak mogę polecić inne klasy Java (które nie są rozszerzane przez działanie, usługę lub odbiornik)? – Sam

+0

@ ChristopherPerry Czy [lub czy wiesz o] raport o błędzie? Zgadzam się, Google powinno to naprawić. Nieumiejętność implementacji niestandardowych widoków w bibliotece jest całkowicie bezsensowna. – AedonEtLIRA

+0

Można zaimplementować niestandardowe widoki, o ile nie próbujesz zdefiniować żadnych niestandardowych atrybutów, które będą używane w widoku. Sposób, w jaki korzystałem z tej biblioteki, i tak jest wątpliwy. –

0

To właściwie kwestia dwulicowości plików. Nie można zbudować projektu zawierającego więcej niż jedną instancję tego samego pliku. Ze względu na charakter projektu Android pliki XML są zwykle pierwszymi, które negują udaną kompilację.

+0

Zasoby mają zostać scalone między Twoimi projektami bibliotecznymi a Twoim projektem aplikacji. Z jakiegoś powodu nie dbam o to teraz, atrybuty nie łączą się. –

+1

Możesz * zbudować * projekt z więcej niż jedną instancją tego samego pliku - na przykład 'splashscreen_lite.png' i' splashscreen_pro.png'. Jak mówi @Eitan Schwartz, zostaną one scalone w czasie kompilacji, a zasoby projektu aplikacji będą miały pierwszeństwo przed zasobami projektu biblioteki. –

Powiązane problemy