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
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.
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:
- AIDL nie działa z build-tools 33.0.0. (zobacz problem 236167971)
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 zasobachandroidx.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 funkcjaapksigner
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 dokumentacjiapksigner
lub w programieapksigner 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 Gradle
3.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
,apksigner
uż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ępujejarsigner
. Domyślnieapksigner
podpisuje pliki APK przy użyciu konwencjonalnego schematu podpisywania pliku JAR (używanego przezjarsigner
) 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 jakzipalign
, musi zostać wykonane przed wywołaniemapksigner
, a nie po nim. Wywoływanie funkcjizipalign
przed funkcjąapksigner
działa prawidłowo, ponieważ funkcjaapksigner
zachowuje wyrównanie i kompresję pliku APK (w przeciwieństwie do funkcjijarsigner
).
- 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ć.
- Dodano
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).