将“排除模块”规则添加到Cordova的plugin.xml中的条目

时间:2016-07-08 19:40:46

标签: android cordova mobile phonegap-plugins cordova-plugins

我在尝试构建我的phonegap项目时遇到此错误

enter image description here 到目前为止,我知道这个错误,因为在项目中有两个库设置。 我检查了所有的库,我发现只有一个库导致这个(在我的一个插件中找到)

 <framework src="com.android.support:design:23.4.0"/>

问题是,我可以在plugin.xml文件中设置排除模块规则吗? 我想我需要排除com.android.supportv4

2 个答案:

答案 0 :(得分:3)

最后我解决了这个问题,我不得不在我的插件中创建一个build-extras.gradle文件,其中包含以下几行:

configurations {
  all*.exclude group: 'com.android.support', module: 'support-v4'
  all*.exclude group: 'com.android.support', module: 'support-annotations'}

然后需要使用以下命令在plugin.xml文件中导入此gradle文件:

<framework src="build-extras.gradle" custom="true" type="gradleReference" />

答案 1 :(得分:0)

我强烈推荐https://github.com/dpa99c/cordova-android-support-gradle-release这是一个&#34;插件,用于调整其他插件指定的各种版本的Android支持库&#34;。

他们使用clever gradle dependency resolution来解决问题:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        if (details.requested.group in ['com.android.support'] && !(details.requested.name in ['multidex', 'multidex-instrumentation'])) { details.useVersion "26.1.0"}
    }
}

这可以避免移除所有 Android支持库的问题,这可能导致插件缺少依赖性/失败的gradle同步。