Saya telah berhasil mengonfigurasi lingkungan SDK android-P. Ketika saya mencoba menggunakan pustaka dukungan desain android, saya menghadapi kesalahan pembuatan proyek. Konfigurasi proyek adalah:
IDE: 3.2 Canary 17 Target API: 28 Compile API: 28
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.app.navigationpoc"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'com.android.support:design:28.0.0-alpha3'
implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
}
Dan kesalahan build yang gagal adalah:
Penggabungan manifes gagal: Aplikasi atribut @ appComponentFactory value = (androidx.core.app.CoreComponentFactory) dari [androidx.core: core: 1.0.0-alpha3] AndroidManifest.xml: 22: 18-86 juga ada di [com.android .support: support-compat: 28.0.0-alpha3] AndroidManifest.xml: 22: 18-91 value = (android.support.v4.app.CoreComponentFactory). Saran: tambahkan 'tools: replace = "android: appComponentFactory"' ke elemen di AndroidManifest.xml: 6: 5-40: 19 untuk diganti.
sumber
Jawaban:
Anda bisa menggunakan artefak versi paket API sebelumnya atau Androidx baru, tidak pernah keduanya.
Jika Anda ingin menggunakan versi sebelumnya, ganti dependensi Anda dengan
jika Anda ingin menggunakan Androidx:
sumber
com
tidak menggantikan dimaterial
dalamimplementation
?Pembaruan Penting
Android tidak akan memperbarui pustaka dukungan setelah
28.0.0
.Jadi gunakan pustaka AndroidX .
androidx
atau pustaka apa pun, karena alfa, beta, rc dapat memiliki bug yang tidak ingin Anda kirimkan bersama aplikasi Anda.Dalam kasus Anda
sumber
Tambahkan ini:
ke aplikasi manifes Anda
semoga membantu
sumber
@string/action_settings
?* What went wrong: Execution failed for task ':app:generateDebugBuildConfig'. > org.xml.sax.SAXParseException; systemId: file:/C:/D/code/js/emps_app/android/app/src/main/AndroidManifest.xml; lineNumber: 14; columnNumber: 52; The prefix "tools" for attribute "tools:replace" associated with an element type "application" is not bound.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
Saya telah menggunakan opsi itu:
https://developer.android.com/jetpack/androidx/migrate
sumber
Google telah memperkenalkan dependensi AndroidX baru . Anda perlu bermigrasi ke AndroidX, itu sederhana.
Saya mengganti semua dependensi ke dependensi AndroidX
Anda dapat menemukan dependensi AndroidX di sini https://developer.android.com/jetpack/androidx/migrate
Opsi migrasi AndroidX otomatis (didukung di android studio 3.3+)
Migrasikan proyek yang ada untuk menggunakan AndroidX dengan memilih Refactor> Migrate to AndroidX dari bilah menu.
sumber
1. Tambahkan kode ini ke app / build.gradle Anda:
2. SDK dan alat yang dimodifikasi versi ke 28:
2. Di file AndroidManifest.xml Anda, Anda harus menambahkan dua baris:
Terima kasih atas jawaban @Carlos Santiago: Pustaka dukungan desain Android untuk API 28 (P) tidak berfungsi
sumber
Perpustakaan dukungan desain untuk androidX adalah
implementation 'com.google.android.material:material:1.0.0'
sumber
buka file gradle.properties dan tambahkan dua baris ini ke dalamnya:
bersihkan dan bangun
sumber
Catatan: Anda tidak boleh menggunakan dependensi com.android.support dan com.google.android.material di aplikasi Anda secara bersamaan.
Tambahkan Komponen Material untuk Android di file build.gradle (aplikasi) Anda
Jika aplikasi Anda saat ini bergantung pada Design Support Library asli, Anda dapat menggunakan opsi Refactor to AndroidX… yang disediakan oleh Android Studio. Melakukan hal itu akan memperbarui dependensi dan kode aplikasi Anda untuk menggunakan pustaka androidx dan com.google.android.material yang baru dikemas.
Jika Anda belum ingin beralih ke paket androidx dan com.google.android.material baru, Anda dapat menggunakan Komponen Material melalui dependensi com.android.support:design:28.0.0-alpha3.
sumber
Pertama-tama, Anda harus melihat gradle.properties dan nilai-nilai ini harus benar . Jika Anda tidak dapat melihatnya, Anda harus menulis.
Setelah itu Anda bisa menggunakan dependensi AndroidX di build.gradle Anda (Module: app) . Selain itu, Anda harus memeriksa compileSDKVersion dan targetVersion . Mereka harus minimal 28. Misalnya saya menggunakan 29.
Jadi, contoh ketergantungan androidx:
Jadi, Anda harus mencari dan membaca dengan cermat. Kode bahagia.
@bayu_joo
sumber
Saya melewati situasi itu dengan mengganti semua
androidx.*
menjadiappropiate package name
.ubah baris Anda
untuk
DICATAT
tools:replace="android:appComponentFactory"
dari AndroidManifestsumber
Kode di bawah bekerja sempurna dengan saya:
sumber
Coba ini:
sumber
Dokumentasi Android menjelaskan hal ini dengan jelas. Buka halaman di bawah ini. Di bawahnya, ada dua kolom dengan nama "OLD BUILD ARTIFACT" dan "AndroidX build artifact"
https://developer.android.com/jetpack/androidx/migrate
Sekarang Anda memiliki banyak dependensi dalam gradle. Cukup cocokkan yang memiliki artefak build Androidx dan ganti di gradle.
Itu tidak akan cukup.
Buka MainActivity Anda (ulangi ini untuk semua aktivitas) dan hapus kata AppCompact Activity dalam pernyataan "public class MainActivity extends AppCompatActivity" dan tulis kata yang sama lagi.Tapi kali ini pustaka androidx diimpor.Sampai sekarang, file dukungan appcompact diimpor dan used (juga, hapus pernyataan import appcompact itu).
Juga, buka file tata letak Anda. Misalkan Anda memiliki tata letak batasan, maka Anda dapat melihat bahwa tata letak batasan baris pertama dalam file xml memiliki sesuatu yang terkait dengan appcompact. Jadi hapus saja dan tulis tata letak Batasan lagi. Tapi sekarang tata letak batasan terkait androidx ditambahkan.
ulangi ini untuk banyak aktivitas dan sebanyak file layout xml ..
Tapi jangan khawatir: Android Studio menampilkan semua kemungkinan kesalahan seperti itu saat mengompilasi.
sumber
Punya masalah serupa. Ditambahkan dalam build.gradle dan itu berhasil untuk saya.
sumber
jika Anda ingin menyelesaikan masalah ini tanpa bermigrasi ke AndroidX (Saya tidak merekomendasikannya)
masalah penggabungan manifes ini terkait dengan salah satu ketergantungan Anda menggunakan androidX.
Anda perlu mengurangi versi rilis dependensi ini. untuk kasus saya:
Saya menggunakan google atau firebase
Saya harus menguranginya 15.0.1 untuk digunakan di pustaka dukungan.
sumber
Menambahkan
androidTestImplementation 'androidx.test:runner:1.2.0-alpha05'
karya untuk saya.sumber