2012-12-09 15 views
5

Podążałem za podstawowymi samouczkami na developers.android.com i przyszedłem, tworząc działanie o nazwie DisplayMessageActivity. Jest to puste działanie z wszystkimi specyfikacjami podanymi w samouczku. FYI, używam Min SDK = API 8, Target SDK = API 16, Kompilacja z = API 10Błąd kompilacji z API 10

Następną rzeczą jest to, że istnieją dwa błędy:

  1. „Metoda getActionBar() jest niezdefiniowane dla typu DisplayMessageActivity
  2. „dom nie może zostać rozwiązany lub nie jest to pole”

próbowałem zmieniając API do 14, który wezwał do innego problemu, chce minimalna API być 11.

To rozwiązuje te problemy, ale głównym problemem jest to, że wiele urządzeń wciąż używa Gingerbread lub może FroYo. Nie mogę dla nich napisać? Czy muszę iść wyżej? Jak do nich pisać?

+0

Tak, kod jest dokładnie taki sam na podstawie tego samouczka: http://developer.android.com/training/basics/firstapp/starting-activity.html –

Odpowiedz

5

Po pierwsze, będziesz chciał się upewnić, że kompilujesz się przeciwko najnowszej wersji Androida. Powinieneś zaktualizować swoją wersję SDK, ponieważ kompilujesz dla interfejsu API 10, ale kierowania 16. Rzeczy mogą się zepsuć, jeśli to zrobisz, więc najlepiej jest być na bieżąco, aby być bezpiecznym. Oznacza to kliknięcie prawym przyciskiem myszy na projekcie w Eclipse, kliknięcie Właściwości, a następnie kliknięcie na systemie Android. Sprawdź najwyższą dostępną wersję API. Jeśli masz najnowszą wersję, jest to Android 4.2. Następnie w swoim AndroidManifest.xml ustaw android:targetSdkVersion na wybrane przez Ciebie urządzenie (mój api 17).

enter image description here

Należy upewnić się, że aplikacja może działać na zasadzie plastra miodu do Jellybean. Jednak ta aplikacja chce działać na co najmniej Froyo. Ta następna część pozwoli Twojej aplikacji działać na wszystkich urządzeniach.

Zrób metoda tak:

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    private void setupActionBar() { 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      // Show the Up button in the action bar. 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 

sprawdza API, które jest uruchomiony na i tylko wtedy, gdy jest to plaster miodu i powyżej, umożliwia pasek działań. Zadzwoń pod numer onCreate() Będziesz musiał usunąć getActionBarCall, który jest w onCreate(), ponieważ nie jest już potrzebny.

Jeśli chodzi o dom nie jest włączony, mógł to być po prostu zły cel projektu lub zapomniałeś napisać android.R.id.home i zamiast tego napisał R.id.home.

Wreszcie po wprowadzeniu wszystkich zmian należy wyczyścić projekt (Projekt -> Wyczyść).