在Phonegap构建中构建时的离子诊断插件错误

Kav*_*avo 2 android cordova cordova-plugins ionic2 ionic3

我试图在访问他们的相机之前询问用户许可.我为此使用了离子诊断插件.在添加诊断插件之前,应用程序在Phonegap构建上构建良好.添加插件后,我通过Phonegap构建获得以下错误:

FAILURE:构建因异常而失败.

  • 出了什么问题:任务执行失败':processDebugManifest'.

    清单合并失败:来自[com.android.support:support-v4:26.0.0-alpha1]的属性meta-data#android.support.VERSION@value value =(26.0.0-alpha1)AndroidManifest.xml:27:9 -38也存在于[com.android.support:appcompat-v7:25.3.1] AndroidManifest.xml:27:9-31 value =(25.3.1).建议:在AndroidManifest.xml:25:5-27:41中添加'tools:replace ="android:value"'到元素

我使用以下方法安装了插件:

$ ionic cordova plugin add cordova.plugins.diagnostic
$ npm install --save @ionic-native/diagnostic
Run Code Online (Sandbox Code Playgroud)

在我的config.xml中,我有以下内容:

<preference name="android-minSdkVersion" value="16" />
<preference name="android-targetSdkVersion" value="23" />

<plugin name="cordova.plugins.diagnostic" spec="^3.6.5"/>
Run Code Online (Sandbox Code Playgroud)

有没有人知道我在这里做错了什么?

seb*_*ras 5

我认为该错误与诊断插件无关.几天前,我更新了我的支持存储库,同样的错误开始出现在我的最后.根据这个SO答案,问题是因为:

有些库依赖于Android支持库的"X或更新"版本,因此Gradle依赖性解析会抓取最新的可用内容,忽略您实际拥有依赖项块中指定的精确版本.

这不是你想要的.您希望所有具有相同版本和主要版本的支持库都必须匹配编译SDK版本.

因此,为了解决它,请转到build.gradle位于文件末尾的文件,projectName/platforms/android/build.gradle并在文件末尾添加以下内容:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.1'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以使用您正在使用的任何版本替换该版本,但鉴于您发布的错误,25.3.1似乎是要使用的正确版本.