0

当我尝试实现一个名为 Helpshift 的插件时,我的代码出现了这个错误。

错误:任务':app:processDebugManifest'的执行失败。>清单合并失败:来自AndroidManifest.xml的属性meta-data#android.support.VERSION@value value =(26.0.1):16:13-35也存在在 [com.android.support:design:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0)。建议:将 'tools:replace="android:value"' 添加到 AndroidManifest.xml:14:9-16:38 的元素以覆盖。

我认为这与应用程序的版本有关。这是我的清单文件:

<?xml version="1.0" encoding="UTF-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.leoconnelly.connexus">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="26" android:compileSDKVersion="26" android:buildToolsVersion="26" />
<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=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".HealthCenterListActivity" />
    <activity android:name=".HealthCenterSelectedActivity" />
    <activity android:name=".MoreInfoActivity" />
    <meta-data
        android:name="android.support.VERSION"
        android:value="26.0.1" />

</application>

这是我的 build.gradle

apply plugin: 'com.android.application'
android {
compileSdkVersion 26
lintOptions {
    abortOnError false
}
defaultConfig {
    applicationId "com.example.leoconnelly.connexus"
    minSdkVersion 23
    targetSdkVersion 26
    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.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:design:26.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'

//Helpshift
compile 'com.android.support:design:26.0.2'
compile 'com.android.support:recyclerview-v7:26.0.2'
compile 'com.android.support:cardview-v7:26.0.2'
compile 'com.helpshift:android-helpshift-en-aar:6.4.2'



}

我相信我对版本做错了,但是当我更改它们时,我得到了另一个错误。任何帮助都是值得的。

4

2 回答 2

0

在清单文件中删除这一行:

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="26"  android:compileSDKVersion="26" android:buildToolsVersion="26" />

并在您的 build.gradle 中在 defaultConfig 部分添加这一行:

  buildToolsVersion '26.1.0'

做@prem上面说的

 compile 'com.android.support:design:26.1.0'
 compile 'com.android.support:recyclerview-v7:26.1.0'
 compile 'com.android.support:cardview-v7:26.1.0'

而不是这个

 compile 'com.android.support:design:26.0.2'
 compile 'com.android.support:recyclerview-v7:26.0.2'
 compile 'com.android.support:cardview-v7:26.0.2'
于 2018-04-18T07:26:30.423 回答
0

如果支持库是 Helpshift sdk 中的硬依赖项,您可以排除它并使用您选择的支持库版本,如下所示:

//Helpshift
// use version 26.1.0 instead of 26.0.2
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'

// exclude the support library
implementation ('com.helpshift:android-helpshift-en-aar:6.4.2') {
    exclude group: 'com.android.support'
    exclude module: 'design'
    exclude module: 'recyclerview'
    exclude module: 'cardview-v7'
}
于 2018-04-18T11:02:23.517 回答