Ketika saya menjalankan cordova build android --buildConfig xxxx --release
, saya mendapatkan kesalahan berikut:
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex
Yang aneh adalah saya menggunakan dua mesin macOS untuk kompilasi, dan saya mendapatkan kesalahan ini hanya pada salah satunya untuk kode yang sama.
Berikut adalah output yang ./gradlew cdvPrintProps
saya dapatkan dari dua mesin:
:cdvPrintProps
cdvCompileSdkVersion=26
cdvBuildToolsVersion=27.0.3
cdvVersionCode=null
cdvMinSdkVersion=21
cdvBuildMultipleApks=true
cdvReleaseSigningPropertiesFile=release-signing.properties
cdvDebugSigningPropertiesFile=null
cdvBuildArch=null
computedVersionCode=152045989
computedArmv7VersionCode=1520459892
computedX86VersionCode=1520459894
Di bawah ini adalah daftar plugin yang digunakan:
$ cordova plugins list
cordova-custom-config 5.0.2 "cordova-custom-config"
cordova-fabric-plugin 1.1.10 "cordova-fabric-plugin"
cordova-open-native-settings 1.5.0 "Native settings"
cordova-plugin-app-event 1.2.1 "Application Events"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
cordova-plugin-datepicker 0.9.2 "DatePicker"
cordova-plugin-device 2.0.1 "Device"
cordova-plugin-email 1.2.7 "EmailComposer"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-secure-storage 2.6.8 "SecureStorage"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 3.9.2 "Diagnostic"
de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification"
ionic-plugin-keyboard 2.2.1 "Keyboard"
Bagaimana cara memperbaiki masalah ini?
Jawaban:
Masukkan saja berikut di build-extras.gradle
sumber
build-extras.gradle
kode tambahan root proyek saya untuk menyalinnya dihooks\after_platform_add
gist.github.com/charlesbedrosian/…Google merilis versi baru 28.0.0-alpha1 dari com.android.support:support-v4 yang menambahkan 2 atribut baru (android: fontVariationSettings dan android: ttcIndex). Beberapa plugin menggunakan pustaka dukungan android terbaru yang menghasilkan inkompatibilitas yang tidak diinginkan.
Opsi 1: Instal plugin cordova-android-support-gradle-release .
Plugin yang terdokumentasi dengan baik yang "menyelaraskan berbagai versi pustaka Dukungan Android yang ditentukan oleh plugin lain ke versi tertentu". Diuji tanpa perilaku yang merusak.
Baca dokumentasi untuk opsi lengkap: Readme
Opsi 2 : Tambahkan cuplikan kode berikutnya di build.gradle di bawah platforms / android
Peringatan: kode dalam build.gradle akan ditimpa jika Anda menghapus / menambahkan platform Android. Jika Anda tidak ingin menggunakan plugin karena alasan tertentu atau entah bagaimana tidak berfungsi untuk Anda, buatlah pengait dan timpa file setiap saat. Periksa komentar kedua di sini .
Jika masalah terus berlanjut, Anda dapat mencoba:
ATAU
Pastikan Anda tidak memiliki versi aplikasi sebelumnya yang terpasang di perangkat yang Anda uji karena Anda akan menerima kesalahan yang tidak jelas saat mencoba menurunkan versi yang ada: "INSTALL_FAILED_VERSION_DOWNGRADE" dan "UnhandledPromiseRejectionWarning: Unhandled promise rejection"
sumber
Kesalahan yang sama terjadi pada saya. Rupanya, versi baru
com.android.support:support-v4
pustaka telah dirilis, dan plugin yang saya gunakan didefinisikancom.android.support:support-v4:+
sebagai ketergantungan diplugin.xml
. The+
tanda berarti bahwa itu akan mendapatkan versi terbaru (28.0.0), yang tampaknya tampaknya tidak sesuai dengan plugin lainnya.Saya dapat membuat versi pengembangan dengan mengubah semua dependensi plugin dari
com.android.support:support-v4:+
menjadicom.android.support:support-v4:27.1.0
. Juga, saya mengeksekusiionic cordova platform remove android
danionic cordova platform add android
. Semoga bisa membantu, setidaknya untuk pembangunan.sumber
Saya baru saja memperbaiki masalah ini dengan membuka folder platform / android dan mengedit
project.properties
file) dan menggantinyacom.android.support:support-v4:+
dengancom.android.support:support-v4:27.1.0
.sumber
Jika Anda benar-benar hanya membutuhkan perbaikan cepat pada masalah itu agar build Anda berjalan, Anda dapat mencoba menambahkan baris berikut ke file platforms / android / build.gradle Anda:
Bagaimanapun, menyetel versi di sini bukanlah perbaikan yang berkelanjutan.
sumber
Aneh, tetapi berhasil ketika saya menambahkan baris di bawah ini dengan versi yang sama.
Ini adalah baris terkait saya di
platforms/android/build.gradle
file:Dalam proyek saya, masalah terjadi karena plugin 'cordova-plugin-crosswalk-webview'.
sumber
Saya memiliki kesalahan yang sama tetapi tidak di cordova build. Versi baru
com.android.support:appcompat-v7
dan dependensi. Tetapi versi yang tidak kompatibel ada di paket ketiga yang bergantung padacom.android.support:appcompat-v7
. Jadi saya tidak dapat memperbaiki paket ketiga dengan solusi @avmatte .Gunakan solusi @ Sai Teja untuk menemukan paket yang tidak kompatibel:
Kemudian perbaiki dengan:
Kode di atas memaksa versi dependensi.
sumber
Saya menghadapi kesalahan yang sama. Lakukan penelitian lengkap di direktori plugin untuk com.android.support:support-v4:+ dan menggantinya dengan kode versi statis.
Bagi saya, com.android.support:support-v4:23.4.0 bekerja dengan baik. Tidak perlu menghapus dan menambahkan kembali platform android.
sumber
Berikut cara mudah untuk memperbaikinya yang akan tetap ada ketika direktori platform dibangun kembali dan tidak perlu memeriksa semua plugin Anda untuk mencoba dan menemukan pelakunya. Buat file
build-extras.gradle
dengan konten ini:Kemudian buat file
after_platform_add/010_copy_build_extras.js
dengan konten berikut:Sekarang buat ulang platform android dan itu akan menggunakan pustaka dukungan yang disematkan.
sumber
<platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
process.argv[2]
adalahbuild
bagi saya!Saya menemukan solusi di Ionic Forum, yang merupakan satu-satunya solusi yang berhasil untuk saya:
Lari:
platform ionic cordova rm android
Lari:
Platform ionic cordova tambahkan [email protected]
Lari:
plugin ionic cordova tambahkan cordova-plugin-androidx
Lari:
plugin ionic cordova tambahkan cordova-plugin-androidx-adapter
Pastikan gradle.properties Anda memiliki:
cdvMinSdkVersion = 19
Pastikan build.gradle Anda memiliki:
Pastikan config.xml Anda memiliki:
dari: https://forum.ionicframework.com/t/firebase-app-unable-to-compile-on-android-with-aapt-error/166564/7
yang juga ditangani dalam jawaban stackoverflow: https://stackoverflow.com/a/56656680/839691
sumber
Ionic 3
aplikasi lama saya . Terima kasih!Beberapa perpustakaan Anda harus menggunakan
Temukan yang mana, dengan
Dan tambahkan pustaka itu sebagai modul jika tidak menggunakan versi tertentu di pembaruan terbarunya (Juga angkat masalah di pustaka itu!;))
Terima kasih untuk @avmatte!
EDIT: Anda juga dapat meminta gradle untuk memaksa versi perpustakaan
sumber
Saya mengalami masalah yang sama tiba-tiba kemarin. Ini dimulai secara acak, tetapi dari membaca, sepertinya ini ada hubungannya dengan pembaruan seperti yang disebutkan di atas oleh @ cpro90. Namun, saya mencoba dan tidak dapat menemukan tempat untuk melakukan perubahan manual yang diperlukan.
Akhirnya saya mengidentifikasi bahwa masalahnya disebabkan oleh plugin cordova-plugin-crosswalk-webview saya. Di GitHub, saya menemukan masalah di repro plugin pagi ini, dan ada lebih dari 520 tampilan saat makan siang.
@UNUMObile menyarankan hal berikut dalam
build.gradle
file untuk memaksa versi sebelumnya secara global:Ini langsung bekerja untuk saya dan dapat membantu orang lain dengan plugin lain yang juga memiliki ketergantungan pada 'com.android.support:support-4:<28. Versi baru 28 tampaknya menjadi masalahnya.
Saya harap ini membantu seseorang bergerak maju.
sumber
Hanya beberapa tip untuk pengembang Kotlin:
Jika Anda mengikuti jawaban ini di sini, Anda yakin tidak memiliki
support-v4
perpustakaan di proyek Anda tetapi Anda masih melihat kesalahan ini, silakan lihatktx
perpustakaan.Saya baru tahu bahwa saya menggunakan
1.0.0-alpha1
versi terbaru untuk perpustakaan ktx dan kesalahan ini muncul; setelah saya ubah kembali ke versi0.3
, semuanya kembali normal sekarang.sumber
Tambahkan baris berikut ke platform / android / build.gradle Anda
jika masih mengalami masalah coba jalankan perintah ini:
sumber
Di
build.gradle
file Anda, tambahkanDan dalam
project.properties
file Anda berubahcordova.system.library.3
menjadicordova.system.library.3=com.android.support:support-v13:27.+
.sumber
Untuk pengguna Phonegap Build , seperti yang disebutkan @catu dalam komentar, Anda dapat mencoba plugin ini yang bertujuan untuk mencegah kegagalan build yang disebabkan oleh versi berbeda dari pustaka dukungan .
sumber
Perbaiki saja masalah ini dengan meletakkan baris kode berikut dalam file platforms / android / app / build.gradle, tepat setelah blok {} buildscript:
sumber
Saya mengalami masalah yang sama setelah menginstal plugin cordova-plugin-file-opener2. Itu disimpan kembali setelah melakukan: Opsi 1: Instal plugin cordova-android-support-gradle-release. plugin cordova menambahkan cordova-android-support-gradle-release --fetch
sumber
Pendekatan lain dengan solusi yang sama adalah membuat kail. Ini persisten (setelah platform diinstal ulang), Anda dapat melakukannya dan tidak perlu menambahkan ulang platform.
Init hook di config
Instal dependensi fs ke proyek Anda:
Jalankan build:
sumber
CARA SUPER SEDERHANA DAN BENAR UNTUK MEMECAHKANNYA!
Cukup perbarui sdk dan tambahkan 2 versi terbaru android ... dan restart komputer! Selesai ...
Sekarang kita punya waktu untuk membicarakan mobil dan olahraga ...
sumber
Saya memiliki masalah yang sama, dan tidak ada solusi yang berhasil untuk saya. Menginstal versi terbaru Android SDK Build-tools (27.0.3) menyelesaikan masalah saya.
sumber
Tautan solusi
Ini karena plugin compat. Hapus plugin itu jika Anda memiliki versi yang lebih lama (kurang dari 1.2.0 ) dan setel [email protected]
Bekerja pada kasus saya. Terima kasih :)
sumber
pembaruan untuk jawaban @Brad Pitcher:
hooks/copy_build_extras.js
config.xml
build-extras.gradle
di direktori rootsumber
Saya mengalami masalah ini dengan react native dan itu disebabkan oleh baris berikut di saya
android/app/build.gradle
:dll ...
Rupanya ini + diselesaikan ke versi 17.0.0 baru yang merusak build saya.
Mengubah + menjadi 16.0.0 (atau 16.0.1 untuk play-services-base) memecahkan masalah saya
sumber
Masalah ini telah membunuh saya selama seminggu.
Akhirnya saya berakhir di
[email protected]
Saya berubah
android/project.properties
dengan mengubahPerubahan itu akhirnya membuat saya keluar dari lubang pesan kesalahan ttcIndex.
Lalu saya mendapat kesalahan ini
Kesalahan tersebut tampaknya karena masalah versi Java. Saya kemudian mengubahnya
android/build.gradle
dengan perubahan berikutPerhatikan juga saya memiliki
cordova-android-support-gradle-release
plugin yang diinstal, tetapi tidak tahu apakah saya membutuhkannya.sumber
Ini adalah entri duplikat di values.xml dalam folder bernama
support-compat-28.0.0-alpha1.aar
.Anda akan menemukan file ini di Windows di
\users\YOURUSERID\.gradle\caches\transforms-1\files-1.1
Begitu berada di dalam folder itu, Anda harus masuk lebih dalam ke values.xml .
Di file itu, cari elemen
<declare-styleable name="FontFamilyFont>
.Di elemen tersebut, hapus EMPAT baris yang ada
android:
di dalamnya.Setelah saya melakukan perubahan itu, saya dapat membangun lagi tanpa kesalahan.
sumber