标签: gradle-plugin

Gradle中的实现和编译之间有什么区别?

在更新到Android Studio 3.0并创建一个新项目后,我注意到build.gradle有一种新方法可以添加新的依赖项,而不是compile存在implementation而不是testCompile存在testImplementation.

例:

 implementation 'com.android.support:appcompat-v7:25.0.0'
 testImplementation 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)

代替

 compile 'com.android.support:appcompat-v7:25.0.0'
 testCompile 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)

它们之间有什么区别,我应该使用什么?

dependency-management gradle transitive-dependency build.gradle gradle-plugin

899
推荐指数
10
解决办法
27万
查看次数

Android Material和appcompat Manifest合并失败

我有下一个年级

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.android.material:material:1.0.0-rc01'
}
Run Code Online (Sandbox Code Playgroud)

但是当我想构建应用程序时,我会得到下一个日志:

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
Run Code Online (Sandbox Code Playgroud)

好! 去清单并执行:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="ru.chopcode.myapplication">

    <application
        tools:replace="android:appComponentFactory"
        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">
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

然后我在Logcat中收到此错误:

Manifest merger failed with multiple errors, see logs that I have …
Run Code Online (Sandbox Code Playgroud)

android build.gradle android-gradle-plugin gradle-plugin

193
推荐指数
19
解决办法
29万
查看次数

应用gradle插件有什么不同

我不明白gradle插件块

apply plugin: 'someplugin1'
apply plugin: 'maven'
Run Code Online (Sandbox Code Playgroud)

和其他一个:

plugins {
   id 'org.hidetake.ssh' version '1.1.2'
}
Run Code Online (Sandbox Code Playgroud)

在第一个块我们有一些插件名称.在第二个包和版本.我不明白我应该在哪里使用第一块和第二块.

groovy gradle gradle-plugin

139
推荐指数
5
解决办法
3万
查看次数

org.gradle.api.InvalidUserCodeException:不支持在任务...完成之前查询提供者(java.util.Set)的映射值

我将我的项目升级到Android Studio Arctic Fox,因此我必须将gradle升级到7.0.2,并将gradle构建工具升级到7.0.0-beta04。

同步后,我在“同步”选项卡中收到此警告消息:

org.gradle.api.InvalidUserCodeException: Querying the mapped value of provider(interface java.util.Set) before task ':myapp:compileDebugUnitTestKotlin' has completed is not supported
    at org.gradle.api.internal.provider.TransformBackedProvider.lambda$beforeRead$0(TransformBackedProvider.java:84)
    at org.gradle.api.internal.file.AbstractFileCollection$ElementsProvider$1.visitProducerTasks(AbstractFileCollection.java:361)
    at org.gradle.api.internal.provider.ValueSupplier$ValueProducer.visitContentProducerTasks(ValueSupplier.java:59)
    at org.gradle.api.internal.provider.TransformBackedProvider.beforeRead(TransformBackedProvider.java:81)
    at org.gradle.api.internal.provider.TransformBackedProvider.calculateOwnValue(TransformBackedProvider.java:63)
    at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103)
    at org.gradle.api.internal.provider.Collectors$ElementsFromCollectionProvider.collectEntries(Collectors.java:216)
    at org.gradle.api.internal.provider.AbstractCollectionProperty$PlusCollector.collectEntries(AbstractCollectionProperty.java:445)
    at org.gradle.api.internal.provider.AbstractCollectionProperty$PlusCollector.collectEntries(AbstractCollectionProperty.java:445)
    at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.calculateValue(AbstractCollectionProperty.java:337)
    at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:184)
    at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:37)
    at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:133)
    at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:127)
    at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103)
    at org.gradle.api.internal.provider.Collectors$ElementsFromCollectionProvider.collectEntries(Collectors.java:216)
    at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.calculateValue(AbstractCollectionProperty.java:337)
    at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:184)
    at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:37)
    at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:133)
    at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:127)
    at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103)
    at org.gradle.api.internal.provider.Collectors$ElementsFromCollectionProvider.collectEntries(Collectors.java:216)
    at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.calculateValue(AbstractCollectionProperty.java:337)
    at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:184)
    at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:37)
    at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:133)
    at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:127)
    at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:84)
    at …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin gradle-plugin gradle-kotlin-dsl

121
推荐指数
5
解决办法
8万
查看次数

cvc-complex-type.2.4.a:发现以元素“base-extension”开头的无效内容。需要“{layoutlib}”之一

当我从 github 下载项目时,我多次遇到这个问题,我正在使用新的 Android studio(bumble bee),如果有人知道请帮助我

https://github.com/fjbatresv/arcore_solar_system.git(这是我在大黄蜂中下载的项目)

没有任何gradle问题

实际上,我已经尝试了 stack over flow 中的许多解决方案,但我得到了 gradle 的解决方案,但这不是与 gradle 相关的错误。

android augmented-reality build.gradle android-gradle-plugin gradle-plugin

117
推荐指数
5
解决办法
18万
查看次数

Gradle版本1.10是必需的.当前版本是2.0

我正在尝试使用最新的Gradle版本(2.0),但是当我在终端中使用gradle build时我会收到此消息.为什么要求1.10版本?我是Gradle的新手,所以我正试图绕过它.

Gradle版本1.10是必需的.当前版本是2.0

这是我的依赖项(模块build.gradle文件):

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    classpath fileTree(dir: 'build-libs', include: '*.jar')
}
Run Code Online (Sandbox Code Playgroud)

...和包装器任务:

task wrapper(type: Wrapper) {
    gradleVersion = "2.0"
}
Run Code Online (Sandbox Code Playgroud)

另外,我已将分发URL设置如下(在local.properties文件中):

distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-all.zip
Run Code Online (Sandbox Code Playgroud)

最后一点是File->Settings->Gradle,我选择了"使用可自定义的gradle包装"

GRADLE_HOME 设置为C:\ Program Files(x86)\ Gradle\gradle-2.0

build.gradle文件:

buildscript {

    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
        classpath fileTree(dir: 'build-libs', include: '*.jar')
    }
}


task wrapper(type: Wrapper) {
    gradleVersion = "2.0"
}
Run Code Online (Sandbox Code Playgroud)

UPDATE1

现在我正在使用这个带有1.1.0-rc1插件版本的Android Studio 1.1.0

    dependencies {
    classpath 'com.android.tools.build:gradle:1.1.0-rc1'
}
Run Code Online (Sandbox Code Playgroud)

Gradle版本在gradle-wrapper.properties中为2.3

distributionUrl=http\://services.gradle.org/distributions/gradle-2.3-all.zip
Run Code Online (Sandbox Code Playgroud)

我试过插件版本1.1.0,但后来抱怨com.android.application

更新01/2016

就目前而言,我在gradle中使用gradle 2.9发布 - > …

android gradle maven build.gradle gradle-plugin

80
推荐指数
4
解决办法
7万
查看次数

Gradle的依赖性缓存可能已损坏(这有时会在网络连接超时后发生.)

我遇到了这种错误,如何修复它.

Error:Unable to load class 'org.gradle.tooling.internal.protocol.test.InternalTestExecutionConnection'.
Possible causes for this unexpected error Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle …
Run Code Online (Sandbox Code Playgroud)

android gradle gradle-plugin

71
推荐指数
8
解决办法
10万
查看次数

启用配置缓存会导致构建失败

我刚刚升级了我们的项目以使用 gradles 构建和配置缓存来帮助构建速度。但是当运行这个命令时构建失败

gradlew dependencies --stacktrace --scan
Run Code Online (Sandbox Code Playgroud)

我的 gradle.properties 文件中有这个

org.gradle.unsafe.configuration-cache=true
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误

FAILURE: Build failed with an exception.

* What went wrong:
Configuration cache problems found in this build.

2 problems were found storing the configuration cache.
- Task `:dependencies` of type `org.gradle.api.tasks.diagnostics.DependencyReportTask`: cannot serialize object of type 'org.gradle.api.artifacts.Configuration' as these are not supported with the configuration cache.
  See https://docs.gradle.org/7.0/userguide/configuration_cache.html#config_cache:requirements:disallowed_types
- Task `:dependencies` of type `org.gradle.api.tasks.diagnostics.DependencyReportTask`: invocation of 'Task.project' at execution time is unsupported.
  See https://docs.gradle.org/7.0/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?或者是什么导致了这个问题?我真的不知道在哪里进行故障排除,因为我不知道这是否是我的 gradle 配置中的错误。

完整的堆栈跟踪 …

android gradle build.gradle android-gradle-plugin gradle-plugin

37
推荐指数
3
解决办法
2万
查看次数

Gradle7版本目录:如何与buildSrc一起使用?

我对正在孵化的 Gradle 版本目录感到非常兴奋,并且一直在尝试它。I\xe2\x80\x99ve 发现我的信息可以在我的应用程序和 utility-lib 项目的脚本gradle/libs.versions.toml中访问。build.gradle.kts

\n

但是,我无法使用该toml文件的内容buildSrc/build.gradle.kts约定文件

\n

我可以构建的唯一方法是将依赖项硬编码到这些文件中,就像我在版本目录功能之前所做的那样。

\n

在该buildSrc文件夹中,我创建了一个settings.gradle.kts文件并插入了 的dependencyResolutionManagement代码versionCatalogs,该代码指向与我的应用程序和 utility-lib 项目相同的文件。

\n

根据 Gradle7文档,似乎可以与 和 模块共享版本目录\xe2\x80\xa6 I\xe2\x80\x99d如果可能的buildSrc话,希望能够推动它与 一起工作。buildSrc

\n

这是一个简单的示例项目,我通过以下方式创建gradle initmy-version-catalog

\n

感谢您的时间和帮助,

\n

麦克风

\n

gradle build.gradle gradle-plugin gradle-kotlin-dsl

35
推荐指数
1
解决办法
1万
查看次数

如何使用Gradle创建具有实现依赖性的可执行胖jar

我在Gradle 4.6中有一个简单的项目,并希望制作一个可执行的jar.我试过shadow,gradle-fatjar-plugin,gradle-one-jar,spring-boot-gradle-plugin插件,但他们都没有增加我的依赖性声明implementation(我没有任何compile的).它适用compilegradle-one-jar插件,但我想有implementation依赖.

非常感谢你!

java executable-jar gradle gradle-plugin fatjar

32
推荐指数
5
解决办法
1万
查看次数