Informacje o wersji narzędzi do tworzenia pakietów SDK

Narzędzia kompilacji Android SDK to komponent pakietu Android SDK wymagany do tworzenia aplikacji na Androida. Jest on zainstalowany w katalogu <sdk>/build-tools/.

Zawsze aktualizuj komponent Narzędzia do tworzenia, pobierając jego najnowszą wersję za pomocą Menedżera pakietu Android SDK. Jeśli używasz wtyczka Androida do obsługi Gradle w wersji 3.0.0 lub nowszej, projekt automatycznie używa domyślnej wersji narzędzi do kompilacji określonych przez wtyczkę. Do użyj innej wersji narzędzi do kompilacji, określ ją za pomocą buildToolsVersion w sekcji build.gradle modułu w następujący sposób:

GroovyKotlin
android {
    buildToolsVersion "34.0.0"
    ...
}
android {
    buildToolsVersion = "34.0.0"
    ...
}

Wersje

W sekcjach poniżej znajdziesz informacje o wersjach narzędzi do kompilacji. Aby sprawdzić, które wersje narzędzi do kompilacji są dostępne w Twoim pakiecie SDK, sprawdź listę Zainstalowanych pakietów w Menedżerze pakietu Android SDK.

Narzędzia do kompilacji, wersja 34.0.0 RC3 (kwiecień 2023 r.)

Ogólne poprawki błędów i ulepszenia.

Ta aktualizacja obejmuje obsługę tworzenia za pomocą interfejsów API w wersji testowej Androida 14.

Ta aktualizacja rozwiązuje następujący problem:

  • core-lambda-stubs.jar w wersji 33.0.0 różni się w systemach macOS i Linux/Windows. (zobacz problem 237299698).

Ta aktualizacja rozwiązuje ten problem:

  • AIDL kończy się niepowodzeniem w narzędziach kompilacji w wersji 33.0.0. Zobacz problem nr 236167971.

Ta aktualizacja obejmuje obsługę tworzenia za pomocą interfejsów Android 11 Preview API.

Ta aktualizacja rozwiązuje ten problem:

Ta aktualizacja rozwiązuje następujący problem:

Ta aktualizacja obejmuje obsługę tworzenia za pomocą interfejsu API na poziomie 29.

Ta aktualizacja obejmuje obsługę Wtyczka Androida do obsługi Gradle w wersji 3.2.0 oraz rozwiązuje te problemy:

  • Usunięto błąd biblioteki JNI, który powodował awarię aplikacji podczas połączeń androidx.renderscript.RenderScript.create()
  • Naprawiono błąd, który powodował błędy kompilacji (Program type already present) w androidx.annotation zasobów.

Obejmuje najnowszą wersję D8.

Ulepsza obsługę kompilowania wyrażeń lambda po włączeniu funkcji językowych Java 8.

Ulepsza obsługę Funkcje języka Java 8.

Dodaje obsługę starszej wersji Multidex w testowych plikach APK. (Problem 37324038)

Oprócz ogólnych poprawek błędów w tej wersji wprowadziliśmy następujące aktualizacje:

  • Aktualizuje apksigner do wersji 0.8:
    • Zgodność z Javą 9. (Numer sprawy 37137869)
    • Nowy parametr --pass-encoding do obsługi repozytoriów kluczy i kluczy zaszyfrowanych za pomocą haseł niebędących w formacie ASCII. Jeśli przełączysz się na Java 9, a apksigner nie uruchomi się odszyfrować magazyn kluczy lub klucz, użyj tego parametru, aby określić kodowanie znaków, do utworzenia magazynu kluczy lub klucza. Więcej informacji znajdziesz w dokumentacji apksigner lub w programie apksigner sign --help z wiersza poleceń.
    • Lepszy komunikat o błędzie, gdy apksigner nie może zweryfikować podpisu JAR z powodu nieobsługiwany algorytm skrótu lub podpisu. (numer problemu 63525618)
  • Obsługa trybu demona AAPT2 podczas używania Wtyczka Androida do obsługi Gradle 3.0.0-beta7 lub więcej.

Oprócz ogólnych poprawek błędów w tej wersji przywrócono apksigner do pakietu narzędzi do kompilacji (został przez pomyłkę pominięty w wersji 26.0.0) i zawiera wprowadziliśmy w narzędziu następujące aktualizacje:

  • Dodano obsługę PKCS #11, aby umożliwić podpisywanie za pomocą kluczy przechowywanych na bezpiecznym sprzęcie. (Numer sprawy 37140484)
  • Dodano obsługę wczytywania dodatkowych dostawców JCA przed podpisaniem.
  • Przyznaje wyróżnienie android:targetSandboxVersion, gdy weryfikacji plików APK.
  • Podczas podpisywania odrzuca pliki APK z plikami zawierającymi „CR”. (powrót karetki), „LF” (nowy wiersz), lub „NUL” (null) znaków specjalnych w nazwie pliku.
  • Naprawia apksigner.bat, aby zapewnić prawidłową obsługę parametrów zawierających spacje. (problem 38132450)
  • Naprawia błąd weryfikacji podpisu JAR, gdy istnieje wiele skrótów dla tego samego pliku wpis w języku MANIFEST.MF. (Problem nr 38497270)

Dodaliśmy obsługę tworzenia z interfejsem API poziomu 26 i ogólne poprawki błędów.

Aktualizacje w apksigner:

  • Dodano parametr --in dla symetrii z obecnym parametrem --out.
  • Jeśli nie określisz hasła klucza za pomocą właściwości --key-pass, apksigner używa hasła do magazynu kluczy. Jeśli jednak klucz wymaga parametru inne hasło, pojawi się prośba o wpisanie hasła klucza z wiersza poleceń. (Numer sprawy 37134986)
  • Dodano zgodność z funkcją jarsigner w przypadku haseł innych niż ASCII. (Numer sprawy 37135737)

Poprawki błędów.

Ta wersja zawiera poprawki błędów oraz – poprawki w apksigner:

  • Obsługa plików APK z zaciemnionymi nazwami wpisów JAR.
  • Przełącznik --print-certs zrzuca teraz również odciski palca MD5.

Poprawki błędów w ekosystemie Jack:

  • Rozwiązanie problemu z obsługą plików źródłowych innych niż ASCII przez Jack. (Problem #218892).
  • Rozwiązaliśmy problem, który powodował występowanie AssertionError w niektórych sytuacjach kompilacje. (Problem #208414);
  • Dodano apksigner, narzędzie do podpisywania plików APK, które zastępuje jarsigner. Domyślnie apksigner podpisuje pliki APK przy użyciu konwencjonalnego schematu podpisywania JAR (używanego przez jarsigner) oraz pakiet APK Schemat podpisu w wersji 2 wprowadzony w Androidzie 7.0 (poziom interfejsu API 24). Wszelkie zmiany w pliku APK podpisanym według schematu podpisu APK w wersji 2 powodują unieważnienie podpisu. Dlatego podczas przetwarzania plików APK, np. zipalign, ma zostać wykonana przed wywołaniem funkcji apksigner, a nie po niej. Wywołuję zipalign przed apksigner działa prawidłowo, ponieważ apksigner zachowuje dopasowanie i kompresję pliku APK (w przeciwieństwie do jarsigner).
  • Rozwiązywanie problemów w klastrze RenderScript Biblioteka pomocy na urządzeniach z arm64.
  • Rozwiązywanie problemów w klastrze RenderScript Biblioteka pomocy na niektórych urządzeniach Jelly Bean.
  • Korzystaj z funkcji renderscriptTargetAPI 21+ na Androidzie Wtyczka do Gradle w wersji 2.1.0 i nowszych .
  • Zwiększona wydajność scalania w narzędziu dx.
  • Rozwiązano problemy z tagiem RenderScript kompilatora dla systemu Windows.

Rozwiązano problemy z narzędziami RenderScript.

Dodano obsługę Androida 6.0 (poziom interfejsu API 23).

Rozwiązano problemy ze zgodnością z jądrami RenderScript na urządzeniach z Androidem w wersji od 4.4 (poziom interfejsu API 19) do 4.1 (poziom interfejsu API 16).

Dodaliśmy obsługę Androida 5.1 (poziom interfejsu API 22).

Rozwiązano problem z tworzeniem układów danych w trybie 32-bitowym.

Usunięto problemy ze skryptem multidex.

Dodano obsługę plików multidex w przypadku plików APK i Jack, aby rozwiązać problem z ograniczeniem liczby odwołań do metody do 64 tys. znaków.

Przeprowadź aktualizacje Eclipse ADT, aby rozwiązać problemy z niestabilnością na platformach Windows.

Wstępne aktualizacje Eclipse ADT w Windowsie. Użyj wersji 21.0.2.

Uwagi ogólne:
  • Dodano obsługę Androida 5.0 (poziom interfejsu API 21).
  • RenderScript obsługuje teraz płynną operację 32-/64-bitową w interfejsie API na poziomie 21 lub wyższym.
  • Rozwiązaliśmy problem z systemem kompilacji Gradle, który występował podczas korzystania z wtyczki JaCoCo. (problem 69174)
  • Dodano opcję input-list do stosowania w przypadku długich wierszy poleceń w Windows.
Uwagi ogólne:
  • Dodano obsługę Androida Wear.
Uwagi ogólne:
  • Dodano element zipalign do narzędzi do tworzenia kompilacji.
  • Zmodyfikowano aapt, aby ignorować pliki XML, których nie udało się skompilować.

Naprawiono problem z obsługą języka RenderScript.

Naprawiono problemy z kompilacją w języku RenderScript:
  • Rozwiązano problem z kodowaniem bitowym RenderScript. (Numer 64775)
  • Rozwiązano problem z brakującymi symbolami matematycznymi w języku RenderScript. (Numer 64110)

Rozwiązano różne problemy z kompilacją:
  • Naprawiono obsługę kompilowania RenderScript w trybie NDK za pomocą Gradle.
  • Rozwiązaliśmy problem BufferOverflowException w wersji dx. (Problem 61710)

Dodaliśmy obsługę celów kompilacji na Androidzie 4.4 (poziom interfejsu API 19).

Rozwiązano kilka drobnych problemów z kompilacją.

Rozwiązaliśmy problem z trybem obsługi RenderScriptu.

Dodaliśmy obsługę celów kompilacji na Androidzie 4.3 (poziom interfejsu API 18).

Pierwsza wersja.

Uwagi ogólne:
  • Dodano obsługę wersji docelowych Androida 4.2 (poziom interfejsu API 17).
  • Odłączono komponenty pakietu SDK do Androida od kompilacji powiązanych z narzędziami platformy. dzięki czemu narzędzia kompilacji mogą być aktualizowane niezależnie od komponentów środowiska programistycznego (IDE).