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 wtyczki Androida do obsługi Gradle 3.0.0 lub nowszej, Twój projekt automatycznie używa domyślnej wersji narzędzi do kompilacji określonej przez wtyczkę. Aby użyć innej wersji narzędzi do kompilacji, określ ją za pomocą buildToolsVersion w  w module w ten sposób:build.gradle

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 tworzenia, wersja 34.0.0 RC3(kwiecień 2023 r.)

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

Ta aktualizacja obejmuje obsługę kompilacji z interfejsami API w wersji próbnej Androida 14.

Ta aktualizacja rozwiązuje ten problem:

  • core-lambda-stubs.jar wersja 33.0.0 różni się na komputerach z macOS w porównaniu z kompami z systemem Linux lub Windows. (zobacz problem 237299698).

Ta aktualizacja rozwiązuje ten problem:

Ta aktualizacja obejmuje obsługę kompilacji z interfejsami API w wersji próbnej Androida 11.

Ta aktualizacja rozwiązuje ten problem:

  • Problem z kompilacją Renderscript w systemie macOS Catalina. (zobacz problem 142590626)

Ta aktualizacja rozwiązuje ten problem:

Ta aktualizacja obejmuje obsługę kompilacji z poziomem interfejsu API 29.

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

  • Naprawiliśmy błąd biblioteki JNI, który powodował awarię aplikacji podczas wywoływania funkcji androidx.renderscript.RenderScript.create().
  • Naprawiono błąd powodujący błędy kompilacji Program type already present w zasobach androidx.annotation.

Zawiera najnowszą wersję D8.

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

Ulepszona obsługa funkcji językowych Java 8.

Dodano obsługę starszego multidexu w przypadku testowych plików APK. (Problem 37324038)

Oprócz ogólnych poprawek błędów ta wersja zawiera te zmiany:

  • Aktualizuje apksigner do wersji 0.8:
    • Zgodność z Java 9. (problem 37137869)
    • Nowy parametr --pass-encoding do obsługi magazynów kluczy i kluczy zaszyfrowanych za pomocą haseł niebędących w formacie ASCII. Jeśli po przejściu na Java 9 funkcja apksigner nie odszyfruje Twojego klucza lub klucza składnicy kluczy, użyj tego parametru, aby określić kodowanie znaków użyte do utworzenia klucza lub klucza składnicy kluczy. Więcej informacji znajdziesz w dokumentacji apksigner lub w programie apksigner sign --help z wiersza poleceń.
    • Ulepszone komunikaty o błędach wyświetlane, gdy apksigner nie może zweryfikować podpisu JAR z powodu nieobsługiwanego algorytmu skrótu lub podpisu. (problem 63525618)
  • Obsługa trybu demona AAPT2 w przypadku korzystania z wtyczki Androida do Gradle3.0.0-beta7 lub nowszej.

Oprócz ogólnych poprawek błędów ta wersja przywraca pakiet apksigner do pakietu narzędzi do kompilacji (został on omyłkowo pominięty w wersji 26.0.0) i zawiera te aktualizacje narzędzia:

  • Dodano obsługę PKCS #11, aby umożliwić podpisywanie za pomocą kluczy przechowywanych na bezpiecznym sprzęcie. (problem #37140484)
  • Dodano obsługę wczytywania dodatkowych dostawców JCA przed podpisaniem.
  • Honoruje android:targetSandboxVersion podczas weryfikacji plików APK.
  • Podczas podpisywania odrzuca pakiety APK z plikami, które zawierają znaki specjalne „CR” (powrót karetki), „LF” (przesunięcie wiersza) lub „NUL” (null) w nazwie pliku.
  • Poprawiono apksigner.bat, aby poprawnie obsługiwał parametry zawierające spacje. (problem 38132450)
  • Naprawiono błąd w weryfikacji podpisu JAR, gdy w pliku MANIFEST.MF występuje kilka skrótów dla tego samego wpisu. (Problem #38497270)

Dodano obsługę kompilacji na poziomie interfejsu API 26 oraz ogólne poprawki błędów.

Zmiany w apksigner:

  • Dodano parametr --in, aby zachować symetrię z dotychczasowym parametrem --out.
  • Jeśli nie określisz hasła klucza za pomocą --key-pass, apksignerużyje hasła klucza składarki jako hasła klucza. Jeśli jednak klucz wymaga innego hasła, pojawi się prośba o podanie hasła klucza z wiersza poleceń. (problem 37134986)
  • Dodano zgodność z jarsigner w przypadku haseł spoza zestawu ASCII. (problem 37135737)

Poprawki błędów.

Ta wersja zawiera poprawki błędów oraz następujące ulepszenia apksigner:

  • Obsługa plików APK z zaszyfrowanymi nazwami wpisów w pliku 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ą przez Jacka plików źródłowych niebędących w formacie ASCII. (Problem #218892)
  • Rozwiązaliśmy problem, który powodował błąd AssertionError podczas niektórych kompilacji. (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 pliku JAR (używanego przez jarsigner) oraz schematu podpisywania pliku APK w wersji 2, wprowadzonego 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 przetwarzanie wstępujące pliku APK, takie jak zipalign, musi zostać wykonane przed wywołaniem apksigner, a nie po nim. Wywoływanie funkcji zipalign przed funkcją apksigner działa prawidłowo, ponieważ funkcja apksigner zachowuje wyrównanie i kompresję pliku APK (w przeciwieństwie do funkcji jarsigner).
  • Rozwiązanie problemów z biblioteką RenderScript na urządzeniach z procesorem ARM64.
  • Rozwiązanie problemów z biblioteką RenderScript na niektórych urządzeniach z Jelly Bean.
  • Obsługa renderscriptTargetAPI 21+ przy użyciu wtyczki Androida do Gradle w wersji 2.1.0 lub nowszej .
  • Zwiększona wydajność scalania w narzędziu dx.
  • Rozwiązano problemy w kompilatorze RenderScript dla systemu Windows.

Rozwiązaliśmy problemy w narzędziach RenderScript.

Dodano obsługę wersji 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).

Dodano obsługę Androida 5.1 (poziom API 22).

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

Rozwiązaliśmy problemy ze skryptem multidex.

Dodano obsługę plików multidex w przypadku APK-ów i Jacka, 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łynne działanie w wersji 32- i 64-bitowej na poziomie interfejsu API 21 i wyższym.
  • Rozwiązaliśmy problem z systemem kompilacji Gradle podczas używania 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 zipalign do narzędzi do tworzenia.
  • Zmieniono aapt, aby ignorować pliki XML, których nie udało się skompilować.

Rozwiązano problem z obsługą RenderScript.

Rozwiązano problemy z tworzeniem kodu RenderScript:
  • Rozwiązano problem z kodowaniem bitowym RenderScript. (Problem 64775)
  • Rozwiązano problem z brakiem symboli matematycznych w RenderScript (problem 64110).

Rozwiązaliśmy 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)

Dodano obsługę wersji docelowych Androida 4.4 (poziom interfejsu API 19).

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

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

Dodano obsługę wersji docelowych na Androida 4.3 (poziom API 18).

Pierwsza wersja.

Uwagi ogólne:
  • Dodano obsługę wersji docelowych Androida 4.2 (poziom interfejsu API 17).
  • Odłączenie komponentów pakietu SDK na potrzeby kompilacji od komponentów platformy i narzędzi, aby można było aktualizować narzędzia do kompilacji niezależnie od komponentów zintegrowanego środowiska programistycznego (IDE).