Android SDK Build-Tools הוא רכיב של Android SDK שנדרש ליצירת אפליקציות ל-Android. הוא מותקן בספרייה <sdk>/build-tools/
.
תמיד צריך לוודא שהרכיב Build Tools מעודכן. לשם כך, מורידים את הגרסה העדכנית ביותר באמצעות Android SDK Manager. אם אתם משתמשים ב-Android plugin for Gradle 3.0.0 ואילך, המערכת תשתמש באופן אוטומטי בגרסה שמוגדרת כברירת מחדל של כלי ה-build שצוינו בפלאגין. כדי להשתמש בגרסה אחרת של כלי ה-build, מציינים אותה באמצעות buildToolsVersion
בקובץ build.gradle
של המודול, באופן הבא:
android { buildToolsVersion "34.0.0" ... }
android { buildToolsVersion = "34.0.0" ... }
גרסאות קודמות
בקטעים הבאים מפורטות הערות לגבי גרסאות של Build Tools. כדי לבדוק אילו גרסאות של כלי ה-build זמינות ב-SDK, אפשר לעיין ברשימת Installed Packages (חבילות מותקנות) במנהל Android SDK.
תיקוני באגים ושיפורים כלליים.
העדכון הזה כולל תמיכה בפיתוח באמצעות ממשקי API של Android 14 בתצוגה מקדימה.
העדכון הזה מתקן את הבעיה הבאה:
-
core-lambda-stubs.jar
מגרסה 33.0.0 שונה ב-macOS לעומת Linux/Windows. (בעיה מס' 237299698)
העדכון הזה מתקן את הבעיה הבאה:
- AIDL נכשל עם build-tools 33.0.0. (ראו בעיה מס' 236167971)
העדכון הזה כולל תמיכה בפיתוח באמצעות ממשקי Android 11 Preview API.
העדכון הזה מתקן את הבעיה הבאה:
- בעיה ב-build עם Renderscript ב-macOS Catalina. (ראו בעיה מס' 142590626)
העדכון הזה מתקן את הבעיה הבאה:
העדכון הזה כולל תמיכה בפיתוח עם רמת API 29.
העדכון הזה כולל תמיכה ב-Android Gradle plugin 3.2.0 ותיקון לבעיות הבאות:
-
תוקן באג בספריית JNI שגרם לאפליקציות לקרוס כשקוראים ל-
androidx.renderscript.RenderScript.create()
. -
תוקן באג שגרם לשגיאות build ב-
Program type already present
עם משאביandroidx.annotation
.
כולל את הגרסה האחרונה של D8.
שיפור התמיכה בתכנות lambda כשמופעלות תכונות השפה של Java 8.
שיפור התמיכה בתכונות השפה של Java 8.
הוספת תמיכה ב-multidex מדור קודם לחבילות APK לבדיקה. (בעיה מס' 37324038)
בנוסף לתיקוני באגים כלליים, הגרסה הזו כוללת את העדכונים הבאים:
- עדכונים של
apksigner
לגרסה 0.8:- תאימות ל-Java 9. (בעיה מס' 37137869)
-
פרמטר
--pass-encoding
חדש לטיפול במאגרי מפתחות ובמפתחות שמאובטחים באמצעות סיסמאות שאינן מסוג ASCII. אם עוברים ל-Java 9 ו-apksigner
לא מצליח לפענח את מאגר המפתחות או את המפתח, צריך להשתמש בפרמטר הזה כדי לציין את קידוד התווים שבו השתמשתם כדי ליצור את מאגר המפתחות או את המפתח. למידע נוסף, עיינו במסמכי העזרה שלapksigner
או הפעילו אתapksigner sign --help
בשורת הפקודה. -
הודעת שגיאה טובה יותר כש-
apksigner
לא מצליח לאמת חתימה של JAR בגלל דיגסט או אלגוריתם חתימה לא נתמכים. (Issue #63525618)
-
תמיכה במצב דימון של AAPT2 כשמשתמשים ב-פלאגין Android ל-Gradle
3.0.0-beta7
ואילך.
בנוסף לתיקוני באגים כלליים, הגרסה הזו מחזירה את apksigner
למקבץ הכלים ל-build (הוא הושמט בטעות בגרסה 26.0.0) וכוללת את העדכונים הבאים בכלי:
- נוספה תמיכה ב-PKCS #11 כדי לאפשר חתימה באמצעות מפתחות שנשמרים בחומרה מאובטחת. (בעיה מס' 37140484)
- נוספה תמיכה בחיבור של ספקי JCA נוספים לפני החתימה.
- מתייחסת ל-
android:targetSandboxVersion
במהלך אימות ערכות APK. - בזמן החתימה, הדחייה של קובצי APK עם קבצים שכוללים תווים מיוחדים מסוג 'CR' (חזרה לתחילת השורה), 'LF' (מעבר שורה) או 'NUL' (null) בשם הקובץ.
- תיקון ב-
apksigner.bat
כדי לטפל בצורה נכונה בפרמטרים שמכילים רווחים. (בעיה מס' 38132450) - תיקון באג באימות החתימה של JAR כשיש כמה תקצירים לאותה רשומה ב-
MANIFEST.MF
. (בעיה מס' 38497270)
נוספה תמיכה ב-build עם רמת API 26, ויש תיקוני באגים כלליים.
עדכונים לגבי apksigner
:
- נוספה הפרמטר
--in
לצורך סימטריה עם הפרמטר הקיים--out
. - אם לא מציינים את הסיסמה של המפתח באמצעות
--key-pass
,apksigner
משתמש בסיסמה של מאגר המפתחות בתור הסיסמה של המפתח. עם זאת, אם המפתח מחייב סיסמה אחרת, תופיע בקשה להזין את הסיסמה של המפתח משורת הפקודה. (בעיה מס' 37134986) - נוספה תאימות ל-
jarsigner
עבור סיסמאות שאינן מסוג ASCII. (בעיה מס' 37135737)
תיקוני באגים.
הגרסה הזו כוללת תיקוני באגים ושיפורים הבאים ב-apksigner
:
- תמיכה ב-APK עם שמות קודומים של רשומות JAR.
- המתג
--print-certs
מעביר עכשיו גם טביעות אצבע של MD5.
תיקוני באגים בכלי הפיתוח של Jack:
- תוקנה בעיה ב-Jack בנוגע לתמיכה בקובצי מקור שאינם ב-ASCII. (בעיה מספר 218892)
- תוקנה בעיה שגרמה ל-
AssertionError
במהלך פעולות הידור מסוימות. (בעיה מס' 208414)
- נוספה
apksigner
, כלי לחתימה על קובצי APK שיחליף אתjarsigner
. כברירת מחדל,apksigner
חותם על חבילות APK באמצעות סכמת החתימה הרגילה של JAR (שמשויכת ל-jarsigner
) וסכמת החתימה של APK v2 שהוצגה ב-Android 7.0 (רמת API 24). כל שינוי בחבילת APK שחתומה באמצעות APK Signature Scheme v2 מבטל את החתימה שלה. לכן, עיבוד תמונה (Post Processing) של קובץ APK, כמוzipalign
, צריך להתבצע לפני ההפעלה שלapksigner
, ולא אחריה. אפשר להפעיל אתzipalign
לפניapksigner
כיapksigner
שומר על היישור והדחיסה של קובץ ה-APK (בניגוד ל-jarsigner
).
- תיקון בעיות בספריית התמיכה של RenderScript במכשירי arm64.
- תיקון בעיות בספריית התמיכה של RenderScript במכשירי Jelly Bean מסוימים.
- תמיכה ב-
renderscriptTargetAPI 21+
כשמשתמשים ב-Android Plugin for Gradle, מהגרסה 2.1.0 ואילך .
- שיפור הביצועים של המיזוג בכלי
dx
. - תוקנו בעיות במהדר של RenderScript ל-Windows.
תוקנו בעיות בכלים של RenderScript.
הוספנו תמיכה במהדורה Android 6.0 (רמת API 23).
תוקנו בעיות תאימות עם ליבות של RenderScript במכשירי Android מגרסה 4.4 (API ברמה 19) עד Android 4.1 (API ברמה 16).
הוספנו תמיכה ב-Android 5.1 (רמת API 22).
תוקנה בעיה ביצירת פריסות של נתוני בניין במצב 32 ביט.
תוקנו בעיות בסקריפטים של multidex.
הוספנו תמיכה בקובצי multidex לחבילות APK ותמיכה ב-Jack כדי לטפל במגבלה של 64K הפניות לשיטות.
עדכונים מלאים ל-Eclipse ADT כדי לפתור בעיות של חוסר יציבות בפלטפורמות Windows.
עדכונים ראשוניים ל-Eclipse ADT ב-Windows. יש להשתמש בגרסה 21.0.2.
- הערות כלליות:
-
- הוספנו תמיכה ב-Android 5.0 (רמת API 21).
- עכשיו, RenderScript תומך באופן חלק בפעולה של 32/64 ביט ברמת API 21 ואילך.
- תוקנה בעיה במערכת ה-build של Gradle כשמשתמשים בפלאגין JaCoCo. (בעיה 69174)
- נוספה אפשרות input-list לשימוש עם שורות פקודה ארוכות ב-Windows.
- הערות כלליות:
-
- הוספנו תמיכה ב-Android Wear.
- הערות כלליות:
-
- הוספנו את
zipalign
ל-Build Tools. - שינוי
aapt
כדי להתעלם מקובצי XML שלא ניתן לקמפל.
- הוספנו את
תוקנה בעיה בתמיכה ב-RenderScript.
- תוקנו בעיות ב-build של RenderScript:
-
- תוקנה בעיה בקידוד של קוד בייט ב-RenderScript. (בעיה 64775)
- תוקנה בעיה ב-RenderScript שבה חסרים סמלים מתמטיים (בעיה 64110)
- תוקנו בעיות שונות ב-build:
-
- תיקון התמיכה בתכנות של RenderScript במצב NDK באמצעות Gradle.
- תוקנה בעיה ב-
BufferOverflowException
בגרסה המאוחדת של dx. (בעיה 61710)
הוספנו תמיכה ביעדים של גרסאות build ל-Android 4.4 (רמת API 19).
תוקנו כמה בעיות קלות בגרסה היציבה.
תוקנה בעיה במצב התמיכה של RenderScript.
הוספנו תמיכה ביעדים של גרסאות build ל-Android 4.3 (רמת API 18).
מהדורה ראשונית.
- הערות כלליות:
-
- נוספה תמיכה ביעדים של גרסאות build ל-Android 4.2 (רמת API 17).
- הפרדת הרכיבים הספציפיים ל-build של Android SDK מהרכיב platform-tools, כדי שאפשר יהיה לעדכן את כלי ה-build בנפרד מהרכיבים של סביבת הפיתוח המשולבת (IDE).