2013-08-17 11 views
24

Dlaczego tak trudno mi jest wejść w fazę rozwoju Androida? Przez lata rozwijałem się w różnych językach iz jakiegoś powodu po prostu nie mogę wyjść poza ten etap "jeez-i-wciąż-czuć-total-noob" z Androidem.Dodawanie bibliotek pomocy technicznej do projektu Android

Próbuję dodać pasek akcji do mojego projektu Android 2.3.3. Nie ma problemu, prawda? Witryna programistów Androida zawiera ładny i przejrzysty artykuł wyjaśniający dokładnie, jak to zrobić. Oczywiście wymaga to dodania biblioteki obsługi appcompat v7. Nie ma problemu, nawet to jest dokumentowane krok po kroku na this page. Jednak, podobnie jak w przypadku każdego takiego ćwiczenia w systemie Android, stwierdzam, że możesz zrobić dokładnie to, co strona każe ci zrobić, to nadal nie będzie działać bez znacznej ilości Googling, aby naprawić błędy, które napotkasz później.

Tak więc postępowałem zgodnie z instrukcjami podanymi w części "Korzystanie z platformy Eclipse" w sekcji "Dodawanie bibliotek z zasobami" w powyższym łączu. Pierwszy błąd jaki otrzymałem to Nie można rozwiązać celu "android-16". Nie ma problemu, ten mógłbym sam się dowiedzieć, ale jestem ciekawy, czy jest coś w dokumentach, które śledziłem, co sugerowałoby mi, że potrzebuję Androida 4.1.2 (API16)? Czy po prostu czytałem od razu, czy powinienem sam wiedzieć, że do zrobienia tego, co próbuję zrobić, potrzebowałbym API16?

Nieważne, przynajmniej mogę to naprawić, ale dostaję nowy problem. Jak tylko dodać android-support-V7-kompatybilnego bibliotekę do mojego projektu, a następnie kliknij przycisk OK, światła wyjściowe konsola z błędami, z których pierwszy jest:

C:...\android-support-v7-appcompat\res\values-v14\styles_base.xml:24: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar'.

a pozostałe 60 błędy nieparzystych są podobne, ale pod różnymi nazwami.

Byłbym bardzo wdzięczny, gdyby ktoś mógł mi pomóc tutaj. Oczywiście chciałbym wiedzieć, jak rozwiązać ten konkretny problem, ale jeśli ktoś mógłby dać mi kilka wskazówek, jak przejść przez ten bardzo frustrujący etap uczenia się tego nowego środowiska programistycznego, byłbym bardzo wdzięczny. Co powinienem zrobić inaczej, aby nie natknąć się na tego rodzaju błędy, poza krok po kroku postępując zgodnie z instrukcjami na stronie dla programistów Androida?

Odpowiedz

22

OK, myślę, że powinienem opublikować odpowiedź, ponieważ w końcu udało mi się rozwiązać mój własny problem.

Okazuje się, że muszę użyć celu kompilacji systemu Android 4.2.2, niezależnie od tego, czy specjalnie rozwijam system Android 2.3.3 - to znaczy, dlatego używam bibliotek wsparcia. Wyobrażam sobie, że może się zdarzyć, że jakiś inny niższy cel (ale wyższy niż 2.3.3) nadal będzie działał. Właśnie użyłem najwyższego, który zainstalowałem i rozwiązał problem.

Sposób, w jaki powinienem wiedzieć o tym, postępując zgodnie z instrukcjami na stronie Android Developers, jest dla mnie zagadką. Powodem, dla którego postanowiłem spróbować zmienić wartość targetSdkVersion, była ostatnia sekcja w page referenced in the question. Brzmi: "Jeśli zwiększasz kompatybilność wsteczną istniejącej aplikacji z wcześniejszą wersją Androida API z Biblioteką wsparcia, upewnij się, że zaktualizowałeś manifest aplikacji." Teraz nie zwiększam kompatybilności wstecznej mojej istniejącej aplikacji. Zmieniam istniejącą aplikację, która jest skierowana do 2.3.3, aby mogła zawierać pasek czynności (wydaje się bardziej podobny do "zgodności z przodu"). Próbowałem uaktualnić targekSdkVersion, ponieważ nie miałem pomysłów i działało.

+1

To jest dobry post, który z pewnością pomoże komuś. – IanB

+7

Na wszelki wypadek, gdy pomaga komuś ... Tworzyłem projekt biblioteki appcompat w nowym obszarze roboczym dla nowego projektu i mam ten błąd "Nie można rozwiązać problemu docelowego" Android-16 "" po zaimportowaniu kodu. Rozwiązaniem, które znalazłem, było zmienić Android: targetSdkVersion na to, czego potrzebuję do mojego głównego projektu (18 z Google API). Wtedy po prostu zamknąłem i ponownie otworzyłem projekt biblioteki i wszystko było w porządku. –

+0

@ Marina.Eariel Twoja metoda działała dla mnie bezbłędnie :) – kpsfoo

0

Masz wskazała wszystkie ważne dokumenty i odpowiednią sekcję „Dodawanie bibliotek z zasobów”:

http://developer.android.com/tools/support-library/setup.html

Błąd sugeruje, że projekt nie jest w stanie znaleźć tych zasobów. Proszę dokładnie sprawdzić:

  1. Sprawdzono „jest biblioteka” w ramach projektu bibliotecznego

  2. wyeksportowaniu słoiki w projekcie biblioteka, jak opisane w tej sekcji

  3. można mieć dodano projekt biblioteki jako odniesienie do projektu Twojej aplikacji

  4. Dodałeś Android-support-v4.jar do swojego folderu libs w projekcie swojej aplikacji

Jeśli to wszystko jest absolutnie poprawne, sprawdź zaćmienie pod kątem komunikatów o błędach - czy projekt biblioteki, czy projekt aplikacji, który świeci jak przysłowiowa choinka?

+0

Dzięki, ale nie, to nie żaden z nich. Sprawdziłem i sprawdziłem dwukrotnie, czy wszystkie są poprawne. Jest to projekt aplikacji, który wyświetla się z błędami, gdy tylko dodałem do niego projekt biblioteki. –

3

Nie wiem, czy to ci pomaga, ale przez kilka godzin borykałem się z podobnym problemem i udało mi się go rozwiązać. W moim przypadku, w pliku styles.xml mojego projektu, odwoływałem się do stylu AppCompat w niewłaściwy sposób w atrybucie parent.

używałem:

<style name="AppBaseTheme" parent="android:Theme.AppCompat"> 

gdzie powinien Użyłem:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat"> 

Mój błąd był w nawiązaniu do tematu.

+1

LOL.To też nie jest rozwiązanie, ale jak to się stało, jak tylko naprawiłem problem (opiszę rozwiązanie jako odpowiedź), gdy pojawił się inny problem, dla którego było to rozwiązanie :-) –

0

Przede wszystkim sprawdź, czy wykonałeś wszystkie opisane czynności, jak wyjaśniono na developers site. Następnie za błędy:

Unable to resolve target 'android-16'

Upewnij się, że masz zainstalowane API16, to błędy pojawia się wtedy, gdy wspomniał swoją targetsdk do 16 w swoim Oczywisty natomiast SDK dla API16 nie jest zainstalowany. Możesz albo zainstalować interfejs API, albo edytować docelową architekturę swojego projektu na minimalną wymaganą wersję, dla biblioteki wsparcia, której używasz. Uważam, że API 11 to minimalna wymagana wersja Androida.

android:Widget.Holo.ActionBar

Ten błąd powinien również zostać naprawiony po ustaleniu targetdk w twoim projekcie. Ponieważ do korzystania z Holo.ActionBar musisz kierować swój projekt na minimalny obsługiwany poziom API, tj. 11 lub więcej.

+0

Ten błąd występuje nawet jeśli celujemy bezpośrednio w poziom API 18 i nie mamy zainstalowanego poziomu interfejsu API 16. – kpsfoo

1

Znalazłem, że ustawienie celu Android na 2.3.3 dla projektu biblioteki Android-support-v7-appcompat rozwiązuje ten problem. Nie musisz ustawiać celu swojego projektu wyżej, ale cel biblioteki jest niższy.

0

Spotkałem podobne problemy. Korzystanie z API 18, ADT.

Aby rozwiązać problem "Nie można rozwiązać problemu docelowego" android-16 ", usuwam projekt importu lib i powtarzam treść samouczka.

Potem odkryłem, że nie mogę "dodać" biblioteki do mojego projektu. (Instrukcja "W panelu Biblioteka kliknij przycisk Dodaj." there nie jest tym szczegółem. 1. W twoim projekcie -> właściwości -> Ścieżka budowania Java -> Biblioteki -> Dodaj bibliotekę ...-> Android Classpath Container -> Wybierz projekt lib 2. W projekcie -> Właściwości -> Android -> dodaj ... -> wybrać lib -> zastosowanie

okrzyki

0

Oto jak ja uniknięto błędu, "Nie udało się rozwiązać celu" android-16 "", dodając v7.

Po pierwsze, postępowałem zgodnie z instrukcjami dodawania bibliotek wsparcia z zasobami w czasie zaćmienia. Po kroku 4 kliknąłem Zakończ. Wtedy zobaczyłem komunikat o błędzie, android-support-v7-appcompat] Nie można rozwiązać docelowego "Androida-16".

Po drugie, przeczytałem ten post. Otworzyłem także menedżera pobierania, ale nie potrzebowałem niczego zaktualizowanego. Aby upewnić się, że postępowałem zgodnie z instrukcjami tak dokładnie, jak to było możliwe, usunąłem projekt android-support-v7-appcompat i rozpocząłem od nowa.

Ten drugi raz nie sprawdziłem żadnych różnych skrzynek. Ale nie mam również błędów w kroku 4. Kto może powiedzieć, dlaczego?

Dzięki, Dewald, wyraziłeś w tym pytaniu tę samą frustrację co ja. Czy doświadczenie jest jedynym wyjściem?

0

Jeśli niektóre pliki zasobów xml nie mogą znaleźć odpowiednich odniesień do AppCompat, należy dodać biblioteki pomocy do właściwości projektu. Można to zrobić poprzez:

1.) prawym przyciskiem myszy na projekcie w projekcie

2.) wybierz Właściwości. (U dołu menu)

3.) kliknij Android w menu po lewej stronie nowego wyskakującym okienku

4.) W sekcji bibliotek, kliknij przycisk "add"

5 .) Wybierz odpowiednie biblioteki. (Jeśli żadna nie pojawi się, sprawdź, czy są one już wyświetlone w oknie "biblioteki" w wyskakującym menu. Jeśli jest pożądana biblioteka w kolorze czerwonym x, spróbuj najpierw rozwiązać ten problem.)

6 .) Gdy pojawi się zielony znacznik wyboru obok pożądanych bibliotek, upewnij się, że opcja "Is Library" w sekcji bibliotek NIE JEST wybrana.

7.) Kliknij przycisk Zastosuj.

8.) Zamknij wyskakujące menu.

Jeśli to nie zadziała, daj mi znać, a ja mogę ci pomóc. Spędziłem trzy godziny na problemie, więc znam prawie wszystko, co może pójść nie tak z ustawieniami.

0

Idź na projekt -> odznacz Budowanie Automatycznie

Przejdź do Project -> Clean ..., czyste zarówno projekt biblioteki i aplikacja projekt

Export aplikacja jako podpisany APK jest automatycznie podczas Budowanie wciąż wyłączone

Powiązane problemy