Note di rilascio di SDK Build Tools

Android SDK Build-Tools è un componente dell'SDK Android necessario per la compilazione di app per Android. È installato nella directory <sdk>/build-tools/.

Devi sempre mantenere aggiornato il componente Build Tools scaricando la versione più recente utilizzando Android SDK Manager. Se utilizzi il plug-in Android per Gradle 3.0.0 o versioni successive, il progetto utilizza automaticamente una versione predefinita degli strumenti di compilazione specificati dal plug-in. Per utilizzare una versione diversa degli strumenti di compilazione, specificala utilizzando buildToolsVersion in build.gradle del modulo, come segue:

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

Revisioni

Le sezioni seguenti forniscono note sulle release degli strumenti di compilazione. Per determinare quali revisioni degli strumenti di compilazione sono disponibili nel tuo SDK, consulta l'elenco Pacchetti installati in Android SDK Manager.

Build Tools, revisione 34.0.0 RC3(aprile 2023)

Correzioni di bug e miglioramenti generici.

Questo aggiornamento include il supporto per la compilazione con le API di anteprima di Android 14.

Questo aggiornamento risolve il seguente problema:

  • La versione 33.0.0 di core-lambda-stubs.jar è diversa su macOS rispetto a Linux/Windows. (vedi issue #237299698).

Questo aggiornamento risolve il seguente problema:

Questo aggiornamento include il supporto per la compilazione con le API di Android 11 Preview.

Questo aggiornamento risolve il seguente problema:

  • Problema di compilazione con Renderscript su macOS Catalina. (vedi issue #142590626)

Questo aggiornamento risolve il seguente problema:

Questo aggiornamento include il supporto per la compilazione con il livello API 29.

Questo aggiornamento include il supporto per Android Gradle Plugin 3.2.0 e risolve i seguenti problemi:

  • È stato risolto un bug della libreria JNI che causava l'arresto anomalo delle app durante la chiamata androidx.renderscript.RenderScript.create().
  • È stato risolto un bug che causava errori di compilazione Program type already present con le risorse androidx.annotation.

Include la versione più recente di D8.

Migliora il supporto per la compilazione dei lambda quando attivi le funzionalità del linguaggio Java 8.

Migliora il supporto per le funzionalità del linguaggio Java 8.

Aggiunge il supporto per il multidex legacy per gli APK di test. (Issue #37324038)

Oltre alle correzioni di bug generali, questa release include i seguenti aggiornamenti:

  • Aggiornamenti apksigner alla versione 0.8:
    • Compatibilità con Java 9. (Issue #37137869)
    • Nuovo parametro --pass-encoding per gestire i keystore e le chiavi criptati utilizzando password non ASCII. Se passi a Java 9 e apksigner non riesce a decriptare il tuo keystore o la tua chiave, utilizza questo parametro per specificare la codifica dei caratteri utilizzata per creare il keystore o la chiave. Per ulteriori informazioni, consulta la documentazione di apksigner o esegui apksigner sign --help dalla riga di comando.
    • Messaggio di errore migliore quando apksigner non riesce a verificare la firma di un file JAR a causa di un algoritmo di firma o di digest non supportato. (Issue #63525618)
  • Supporto della modalità daemon AAPT2 quando si utilizza il plug-in Android per Gradle 3.0.0-beta7 o versioni successive.

Oltre alle correzioni di bug generali, questa release ripristina apksigner nel pacchetto degli strumenti di compilazione (è stato omesso per errore nella versione 26.0.0) e include i seguenti aggiornamenti dello strumento:

  • Aggiunge il supporto di PKCS #11 per consentire la firma con chiavi memorizzate in hardware sicuro. (Issue #37140484)
  • Aggiunge il supporto per il caricamento di altri fornitori JCA prima della firma.
  • Rispetta android:targetSandboxVersion durante la verifica degli APK.
  • Durante la firma, rifiuta gli APK con file che includono i caratteri speciali "CR" (a capo), "LF" (a capo riga) o "NUL" (null) nel nome file.
  • Corregge apksigner.bat per gestire correttamente i parametri contenenti spazi. (Issue #38132450)
  • Corregge un bug nella verifica della firma JAR quando sono presenti più digest per la stessa voce in MANIFEST.MF. (Issue #38497270)

Aggiunge il supporto per la compilazione con il livello API 26 e contiene correzioni di bug generali.

Aggiornamenti a apksigner:

  • È stato aggiunto il parametro --in per simmetria con il parametro --out esistente.
  • Se non specifichi la password della chiave utilizzando --key-pass, apksigner utilizza la password del keystore come password della chiave. Tuttavia, se la chiave richiede una password diversa, ora ti viene chiesto di inserire la password della chiave dalla riga di comando. (Issue #37134986)
  • È stata aggiunta la compatibilità con jarsigner per le password non ASCII. (Issue #37135737)

Correzioni di bug.

Questa release include correzioni di bug e i seguenti miglioramenti a apksigner:

  • Supporto per gli APK con nomi di voci JAR offuscati.
  • L'opzione --print-certs ora esegue anche il dump delle impronte MD5.

Correzioni di bug per la toolchain Jack:

  • È stato risolto il problema relativo al supporto di file di origine non ASCII da parte di Jack. (Issue #218892)
  • È stato risolto un problema che causa un AssertionError durante alcune compilation. (Issue #208414)
  • È stato aggiunto apksigner, uno strumento di firma APK che sostituisce jarsigner. Per impostazione predefinita, apksigner firma gli APK utilizzando lo schema di firma JAR convenzionale (utilizzato da jarsigner) e lo schema di firma dell'APK v2 introdotto in Android 7.0 (livello API 24). Qualsiasi modifica a un APK firmato con lo schema di firma dell'APK v2 ne invalida la firma. Pertanto, la post-elaborazione dell'APK, ad esempio zipalign, deve essere eseguita prima dell'invocazione di apksigner, non dopo. L'invocazione di zipalign prima di apksigner funziona correttamente perché apksigner preserva l'allineamento e la compressione dell'APK (a differenza di jarsigner).
  • Risolvere i problemi nella libreria di supporto RenderScript su dispositivi arm64.
  • Risolvere i problemi nella libreria di supporto RenderScript su alcuni dispositivi Jelly Bean.
  • Supporto di renderscriptTargetAPI 21+ quando si utilizza il plug-in Android per Gradle, revisione 2.1.0 e successive .
  • Sono state migliorate le prestazioni di unione dello strumento dx.
  • Sono stati corretti i problemi nel compilatore RenderScript per Windows.

Sono stati risolti i problemi relativi agli strumenti RenderScript.

È stato aggiunto il supporto per la release Android 6.0 (livello API 23).

Sono stati risolti i problemi di compatibilità con i kernel RenderScript su dispositivi da Android 4.4 (livello API 19) ad Android 4.1 (livello API 16).

È stato aggiunto il supporto per Android 5.1 (livello API 22).

È stato risolto il problema relativo alla creazione di layout dei dati in modalità a 32 bit.

Sono stati risolti i problemi relativi agli script multidex.

È stato aggiunto il supporto dei file multidex per gli APK e il supporto di Jack per risolvere il limite di riferimenti ai metodi di 64 KB.

Aggiornamenti completi per Eclipse ADT per risolvere i problemi di instabilità sulle piattaforme Windows.

Aggiornamenti iniziali per Eclipse ADT su Windows. Utilizza la revisione 21.0.2.

Note generali:
  • È stato aggiunto il supporto per Android 5.0 (livello API 21).
  • RenderScript ora supporta il funzionamento senza interruzioni a 32/64 bit per il livello API 21 e versioni successive.
  • È stato risolto un problema con il sistema di compilazione Gradle quando si utilizza il plug-in JaCoCo. (Issue 69174)
  • È stata aggiunta un'opzione input-list da utilizzare con righe di comando lunghe su Windows.
Note generali:
  • È stato aggiunto il supporto per Android Wear.
Note generali:
  • zipalign è stato aggiunto agli Strumenti di compilazione.
  • È stato modificato aapt per ignorare i file XML che non riescono a compilare.

Risolto un problema relativo al supporto di RenderScript.

Sono stati risolti i problemi di compilazione di RenderScript:
  • È stato risolto un problema con la codifica del codice bit di RenderScript. (Issue 64775)
  • Risolto un problema relativo ai simboli matematici mancanti in RenderScript (Issue 64110)

Sono stati risolti vari problemi di compilazione:
  • È stato corretto il supporto per la compilazione di RenderScript in modalità NDK con Gradle.
  • È stato risolto il problema BufferOverflowException nella compilazione di dx. (Issue 61710)

È stato aggiunto il supporto per i target di build Android 4.4 (livello API 19).

Sono stati corretti diversi problemi minori di compilazione.

È stato risolto il problema relativo alla modalità di supporto di RenderScript.

È stato aggiunto il supporto per i target di compilazione Android 4.3 (livello API 18).

Rilascio iniziale.

Note generali:
  • È stato incluso il supporto per i target di build Android 4.2 (livello API 17).
  • Sono stati disaccoppiati i componenti specifici della compilazione dell'SDK Android dal componente platform-tools, in modo che gli strumenti di compilazione possano essere aggiornati indipendentemente dai componenti dell'ambiente di sviluppo integrato (IDE).