I've configured android-P SDK environment successfully. When I attempt to use the android design support library I face project build errors. Project configurations are:
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' }
And build failed error is:
Manifest merger failed : Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 is also present at [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory). Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:6:5-40:19 to override.
The Design Support library adds support for various material design components and patterns for app developers to build upon, such as navigation drawers, floating action buttons (FAB), snackbars, and tabs. The Gradle build script dependency identifier for this library is as follows: com. android.
Version 28(intended for Android Pie and below) is the last version of the legacy support library, so we recomand that you migrate to AndroidX libraies when using Android Q and moving forward. AndroidX replaces the original support library APIs with packages in the androidx namespace.
Like the Support Library, libraries in the androidx namespace ship separately from the Android platform and provide backward compatibility across Android releases. AndroidX is a major improvement to the original Android Support Library, which is no longer maintained.
You can either use the previous API packages version of artifacts or the new Androidx, never both.
If you wanna use the previous version, replace your dependencies with
dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support:appcompat-v7:28.0.0-alpha3' implementation 'com.android.support.constraint:constraint-layout:1.1.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.android.support:design:28.0.0-alpha3' implementation 'com.android.support:cardview-v7:28.0.0-alpha3' }
if you want to use Androidx:
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.google.android.material:material:1.0.0-alpha3' implementation 'androidx.cardview:cardview:1.0.0-alpha3' }
Android will not update support libraries after 28.0.0
.
This will be the last feature release under the android.support packaging, and developers are encouraged to migrate to AndroidX 1.0.0.
So use library AndroidX.
androidx
or any library, because alpha, beta, rc can have bugs which you dont want to ship with your app.In your case
dependencies { implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.1' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With