2

i am new in android and have an app that when build my project have this Error ::

ERROR: Manifest merger failed : Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 is also present at [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory). Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:9:5-44:19 to override.

My Gradle build is ::

apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { applicationId "maa.tic_tac_to" minSdkVersion 19 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(dir: 'libs', include: ['*.jar']) implementation 'com.google.firebase:firebase-messaging:19.0.1' androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) // implementation 'com.android.support:appcompat-v7:24.2.1' implementation 'com.android.support:appcompat-v7:28.0.0' // implementation 'com.android.support:support-v4:28.+' // implementation ('com.theartofdev.edmodo:android-image-cropper:2.4.+'){ // exclude group: 'com.android.support' //} // implementation 'com.google.android.material:material:1.0.0-alpha08' implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta2' // implementation 'com.androidx.constraintlayout.widget:ConstraintLayout:2.0.0-beta2' testImplementation 'junit:junit:4.12' } 

and manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="maa.tic_tac_to"> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <application android:allowBackup="true" android:icon="@drawable/tic_tac_toe" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"></activity> <receiver android:name=".MySMSReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> <activity android:name=".FakeActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LogInActivity"></activity> <service android:name=".MyFirebaseMessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> </application> </manifest> 

i test every solution in stackoverflow and google search but anyone help me. can anyone help to solve this error ?!?!?!?

0

1 Answer 1

3

You are using

implementation 'com.google.firebase:firebase-messaging:19.0.1' 

Firebase migrated to AndroidX in the latest release. It means that you are using both, support libraries and androidx libraries.

You can:

  • migrate to androidx as described below
  • downgrade your firebase dependencies (but it is not a real solution because you have to migrate sooner or later)

You can check the official release notes:

Warning: This release is a MAJOR version update and breaking change. The latest update to Google Play services and Firebase includes the following changes:

Migration from Android Support Libraries to Jetpack (AndroidX) Libraries. Libraries will not work unless you make the following changes in your app:

  • Upgrade com.android.tools.build:gradle to v3.2.1 or later.
  • Upgrade compileSdkVersion to 28 or later.
  • Update your app to use Jetpack (AndroidX); follow the instructions in Migrating to AndroidX.
Sign up to request clarification or add additional context in comments.

2 Comments

thanks Bro i Migrate to AndroidX and change the imports to AndroidX and its works now
Hi @hossein. if this or any answer has solved your question please consider accepting it by clicking the check-mark. This indicates to the wider community that you've found a solution and gives some reputation to both the answerer and yourself. There is no obligation to do this

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.