Tag: gradle

从gradle org.gradle.api.Project获取ClassLoader?

我正在写一个gradle插件 ,希望从该插件应用于的项目的资源读取特定的属性文件。 要阅读这些资源,我需要一个项目的类路径。 目前我正在与: org.gradle.api.Project.getBuildscript().getClassLoader().getResourcesAsStream(…) 但即使该项目中存在此类资源,它也总是返回null。

与Gradle不兼容的ClassChangeError

我知道这个问题已经解决了,但我相信我的情况是不同的。 我在intellij中使用gradle来运行我的程序,并试图启动我的本地主机服务器时出现此错误: Dec 12, 2016 2:28:38 PM com.sun.jersey.api.core.ClasspathResourceConfig init INFO: Scanning for root resource and provider classes in the paths: C:\Program Files\Java\jdk1.8.0_101\jre\lib\charsets.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\deploy.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\access-bridge-64.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\cldrdata.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\dnsns.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jaccess.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jfxrt.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\localedata.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\nashorn.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunec.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunjce_provider.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunmscapi.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunpkcs11.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\zipfs.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\javaws.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\jce.jar C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfr.jar C:\Program […]

无法使用Kotlin中的特定类型参数编译扩展函数

我有一个kotlin库项目,并使用Spek进行测试。 在我的测试中,我尝试使用以下功能: inline fun JsonElement?.cast<reified T>(gson: Gson): T { return if (this != null) gson.fromJson<T>(this, javaClass<T>()) else null } 当我尝试编译上面的代码时,出现编译错误: Error: Gradle: java.lang.IllegalStateException: Error type encountered: org.jetbrains.kotlin.types.ErrorUtils$UninferredParameterTypeConstructor@144bac7f (ErrorTypeImpl). One of the possible reasons may be that this type is not directly accessible from this module. To workaround this error, try adding an explicit dependency on […]

在Kotlin DSL中如何设置gradle额外属性?

我试图组织我的构建文件,因为我会在groovy,通过在一个单独的文件重用值。 但我不明白在kotlin DSL中做同样的事情的语法。 以下是我在root build.gradle.kts中使用的内容: applyFrom("config.gradle.kts") buildscript { repositories { google() jcenter() } dependencies { val test = project.extra["minSdkVer"] classpath("com.android.tools.build:gradle:3.0.0-alpha4") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-5") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() mavenCentral() } } 这是什么在config.gradle.kts被引用: mapOf( Pair("minSdkVer", 22), Pair("targetSdkVer", […]

Android测试失败时,Gradle构建失败,“字符串索引超出范围”

尝试使用Android进行仪器测试时遇到问题。 当其中一个测试失败时,构建失败,但没有声明测试失败。 相反,我得到FAILURE: Build failed with an exception. 对于出错的部分,我得到的String index out of range: -1 。 在我真正的应用程序,这是导致它不生成一个HTML报告,并且XML报告零星生成。 我已经把一个简单的测试用例放在一起,但它正在生成报告,但是另外给出了相同的失败消息。 为了澄清, 测试旨在失败,但我期望一个A test has failed消息,而不是看起来像一个不同的失败原因。 我怀疑这个失败正在导致构建生命周期中的其他事情导致我所看到的信息出错。 这是非常简单的测试应用程序 的build.gradle buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.4.0-alpha7' } } apply plugin: 'com.android.application' repositories { jcenter() mavenCentral() } dependencies { androidTestCompile "com.android.support.test.espresso:espresso-core:2.2.2" androidTestCompile "com.android.support.test.espresso:espresso-intents:2.2.2" androidTestCompile "com.android.support.test:runner:0.5" } […]

如何通过Gradle将编译器参数传递给Kotlin编译器

我正在使用Kotlin Gradle插件编译一个Gradle的Kotlin库jar: apply plugin: 'kotlin' 我试图找到一种方法来传递一个简单的-include-runtime编译器参数给kotlin编译器。 我似乎无法找到任何文件。 我试图模仿Java插件,但似乎没有工作。 下面是关于使用命令行编译器的一些文档,但是Gradle文档没有提到有关传递编译器参数的任何内容。

Google Guava Invokedynamic要求–min-sdk-version> = 26

我得到Android Studio 3.0(与2.3另一个不同)的错误。 我一直在试图修复几个小时去除一些依赖,没有任何工作。 所以现在我不想要我可以尝试什么。 Error while processing com/google/common/collect/Maps$NavigableAsMapView.class com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires –min-sdk-version >= 26) 这是我的gradle构建 。 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.costular.transmissionremote" minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { […]

如何在多项目中使用Spek来设置Jacoco?

我想要测量雅科科在儿童项目之一的model项目中的覆盖面。 然而,在test任务之后, jacocoTestReport任务被跳过。 test : :model:compileKotlin UP-TO-DATE :model:compileJava UP-TO-DATE :model:copyMainKotlinClasses UP-TO-DATE :model:processResources UP-TO-DATE :model:classes UP-TO-DATE :model:compileTestKotlin UP-TO-DATE :model:compileTestJava UP-TO-DATE :model:copyTestKotlinClasses UP-TO-DATE :model:processTestResources UP-TO-DATE :model:testClasses UP-TO-DATE 3 10, 2017 8:17:48 org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines Discovered TestEngines with IDs: [spek] :model:junitPlatformTest Test run finished after 113 ms [ 4 containers found ] [ 0 containers skipped ] [ 4 […]

无法获取任务的未知属性'outputFile':app:packageDebug'

我尝试从我的终端执行命令:./gradlew testfairyDebug。 这将返回下一个错误: 失败:生成失败,出现异常。 出了什么问题:执行失败的任务':app:testfairyDebug'。 无法获取com.android.build.gradle.tasks.PackageApplication类型的任务':app:packageDebug'的未知属性'outputFile'。 你有什么想法来解决这个问题。 有关信息,我在Android Studio 3上工作,我的gradle版本是'com.android.tools.build:gradle:3.0.0-alpha6' 我的build.gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.1.2-4' repositories { maven { url 'https://maven.google.com' } maven { url 'https://www.testfairy.com/maven' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha6' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.testfairy.plugins.gradle:testfairy:1.+' // NOTE: Do […]

找不到id为`kotlin`的插件

我正在使用gradle并且正在尝试将kotlin添加到我的项目中。 但是,当我试图添加kotlin插件gradle它无法找到它。 apply plugin: 'groovy' apply plugin: 'kotlin' buidscript { ext.kotlin_version = '1.0.1-2' repositories { jcenter() mavenCentral() } dependencies { classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.1-2' } } repositories { jcenter() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.6' compile 'org.antlr:antlr4:4.5.3' testCompile 'org.spockframework:spock-core:1.0-groovy-2.4' testCompile 'junit:junit:4.12' compile 'org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version' } 我得到这个错误 Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'kotlin' not found. 问题是什么?