Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么找不到android gradle maven发布工件捆绑包_Gradle_Maven Publish - Fatal编程技术网

为什么找不到android gradle maven发布工件捆绑包

为什么找不到android gradle maven发布工件捆绑包,gradle,maven-publish,Gradle,Maven Publish,当我同步项目时,android studio warn无法为org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication类型的对象获取未知属性“bundleRelease”。 我添加了project.afterEvaluate{//block},但它不起作用。如何设置工件Android Gradle插件3.3.x(至少在编写此答案时发布了-alpha版本)发生了突破性的变化,任务bundleRelease被重命

当我同步项目时,android studio warn
无法为org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication类型的对象获取未知属性“bundleRelease”。


我添加了
project.afterEvaluate{//block}
,但它不起作用。如何设置
工件

Android Gradle插件3.3.x(至少在编写此答案时发布了-alpha版本)发生了突破性的变化,任务
bundleRelease
被重命名为
bundleReleaseAar

因此,解决方案是使用:
bundreleaseaar
而不是
bundrelease

注意:任务名称中的“release”是buildType/flavor组合,因此在您的设置中可能会有所不同


一般答案:
bundleRelease
是一个任务,要找到它的新名称,您可以运行
/gradlew tasks--all

,这样的答案是正确的。只需添加一个
project.afterEvaluate{//block}
就可以使其正常工作。这些信息很容易被忽略

完整示例:

project.afterEvaluate{
出版{
出版物{
mavenDebugAAR(Mavenbugaar出版物){
布加尔手工艺品
pom.withXml{
def dependenciesNode=asNode().appendNode('dependencies'))
configurations.api.allDependencies.each{ModuleDependency dp->
def dependencyNode=dependenciesNode.appendNode('dependency'))
dependencyNode.appendNode('groupId',dp.group)
dependencyNode.appendNode('artifactId',dp.name)
dependencyNode.appendNode('version',dp.version)
if(dp.excludeRules.size()>0){
def excludes=dependencyNode.appendNode('excludes'))
dp.excludeRules.each{ExcludeRule ex->
def exclusion=exclusions.appendNode('exclusion')
exclusion.appendNode('groupId',ex.group)
exclusion.appendNode('artifactId',ex.module)
}
}
}
}
}
mavenReleaseAAR(MavenPublication){
人工制品集束器
pom.withXml{
def dependenciesNode=asNode().appendNode('dependencies'))
configurations.api.allDependencies.each{ModuleDependency dp->
def dependencyNode=dependenciesNode.appendNode('dependency'))
dependencyNode.appendNode('groupId',dp.group)
dependencyNode.appendNode('artifactId',dp.name)
dependencyNode.appendNode('version',dp.version)
if(dp.excludeRules.size()>0){
def excludes=dependencyNode.appendNode('excludes'))
dp.excludeRules.each{ExcludeRule ex->
def exclusion=exclusions.appendNode('exclusion')
exclusion.appendNode('groupId',ex.group)
exclusion.appendNode('artifactId',ex.module)
}
}
}
}
}
}
存储库{
马文{
名称“nexusSnapshot”
证书{
用户名“”
密码“”
}
url“”
}
马文{
名称“nexusRelease”
证书{
用户名“”
密码“”
}
url“”
}
}
}
}

这也适用于新稳定的Android Gradle插件3.2.0。现在位于
com.Android.tools.build:Gradle:3.4.0
对于
工件bundreleaseaar
,使用什么来代替
bundreleaseaar
?@NickUnuchek似乎我们必须包装整个
发布{…}
阻塞到
项目中。在评估{publishing{…}}
后,它就可以工作了。感谢您用完整的示例说明这一点!它真的救了我一天!