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

时间:2017-06-15 06:44:48

标签: android cordova ionic2 cordova-plugins ionic3

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

失败:构建因异常而失败。

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

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

我使用以下内容安装了插件:

$ ionic cordova plugin add cordova.plugins.diagnostic
$ npm install --save @ionic-native/diagnostic

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

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

<plugin name="cordova.plugins.diagnostic" spec="^3.6.5"/>

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

2 个答案:

答案 0 :(得分:5)

我认为该错误与诊断插件无关。几天前,我更新了我的支持存储库,同样的错误开始出现在我的最后。根据{{​​3}},问题是因为:

  

某些库依赖于版本&#34; X或更新版本&#34; Android支持   库,因此Gradle依赖性解析抓住了最新的东西   可用忽略你实际上有一个指定的精确版本   你的依赖阻止。

     

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

因此,为了解决问题,请转到位于build.gradle的{​​{1}}文件,并在文件末尾添加以下内容:

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' } } } } 似乎是要使用的正确版本。

答案 1 :(得分:2)

基于@sebaferreras的答案,我创建了一个包装Gradle配置的插件,并允许它动态地拉入Cordova项目(如果你为你的构建使用CI,这真的很有帮助):{ {3}}

基本上,只需将其添加到您的项目中,它将强制任何指定的支持库版本到最新的主要版本(当前v25):

cordova plugin add cordova-android-support-gradle-release