У меня ошибка Gradle каждый раз, когда я запускаю приложение - PullRequest
0 голосов
/ 07 ноября 2018

Я работаю с проектом Android, и каждый раз, когда я запускаю приложение, появляется ошибка такого типа:

Ошибка слияния манифеста: Атрибут application @ appComponentFactory value = (android.support.v4.app.CoreComponentFactory) из [Com.android.support:support-compat:28.0.0] AndroidManifest.xml: 22: 18-91 также присутствует на [androidx.core: core: 1.0.0-alpha1] AndroidManifest.xml: 22: 18-86 значение = (androidx.core.app.CoreComponentFactory). Предложение: добавить 'tools: replace = "android: appComponentFactory"' к элементу на AndroidManifest.xml: 10: 5-44: 19 для переопределения.

И даже если я попытаюсь сделать это так, как мне сказали, есть еще одна ошибка.

Это файл build.gradle :

apply plugin: 'com.android.application'

android {
compileSdkVersion 28
defaultConfig {
    applicationId "com.community.jboss.visitingcard"
    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'
    }
}
buildToolsVersion '28.0.3'
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:28.0.0'
//the intro library
implementation 'com.github.msayan:tutorial-view:v1.0.6'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation "com.android.support:preference-v7:28.0.0"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
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'
}

И это Манифест файл:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.community.jboss.visitingcard">

<!--
    TODO: Add location/GPS access permissions
    TODO: Change the Label of the Activities according to the Activity's 
context
    TODO: Change App Icon .i.e., ic_launcher
-->
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".LoginActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar" />
    <activity android:name=".VisitingCard.VisitingCardActivity" />
    <activity android:name=".IntroScreens.SliderActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!-- TODO: Add Google Maps API key here -->
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".Maps.MapsActivity"
        android:label="@string/title_activity_maps"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
    <activity android:name=".VisitingCard.ViewVisitingCard" />
    <activity
        android:name=".SettingsActivity"
        android:label="@string/title_activity_settings" />
    <activity android:name=".IntroActivity"></activity>
</application>

</manifest>

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Вы используете две зависимости appcompat, одну из пространства имен поддержки, а другую - из пространства имен androidx. Идеальным решением будет полностью переместить ваш проект на androidx и удалить указанную ниже зависимость,

 implementation 'com.android.support:appcompat-v7:28.0.0'

и вы можете использовать стабильную версию библиотеки andoid x appcompat

androidx.appcompat:appcompat:1.0.0 instead of androidx.appcompat:appcompat:1.0.0-alpha1'
0 голосов
/ 07 ноября 2018

Кажется, вы решили использовать androidX в своем проекте, но использование appCompat с androidX вместе некорректно.
Лучше, если вы используете библиотеки androidX, удалите appCompat.
Если вы настаиваете на использовании androidX, удалите implementation 'com.android.support:appcompat-v7:28.0.0' в build.gradle файле или удалите androidX один, в противном случае.

для получения дополнительной информации о вашей ошибке: Вы можете открыть файл «Манифест» и перейти на объединенную вкладку. В нижней части файла вы можете увидеть, что не так.

0 голосов
/ 07 ноября 2018

Добавьте следующую строку в манифест:

tools:replace="android:appComponentFactory"

Как это:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:appComponentFactory>

//Your code here

</application>
...