Tag: gradle

在gradle-kotlin-dsl中的Android产品Flavors

我已经在Android项目中尝试了gradle-kotlin-dsl。 我设法使其工作,但我坚持如何定义productFlavors android { compileSdkVersion(Config.Android.compileSdkVersion) buildToolsVersion(Config.Android.buildToolsVersion) defaultConfig { minSdkVersion(Config.Android.minSdkVersion) targetSdkVersion(Config.Android.targetSdkVersion) versionCode = Config.Version.code versionName = Config.Version.name } buildTypes { getByName(“release”) { isMinifyEnabled = false } } flavorDimensions(“dimension”) productFlavors { //product flavors here } } 经过一番调查,我已经得到了解决方案,只需使用create方法: productFlavors { create(“flavor1”) { //flavor configurations here } create(“flavor2”) { //flavor configurations here } }

Android Studio和Kotlin – 不加载更改

要加载一个新的APK,我需要清理每一个建设之前。 这就像编译器没有注意到我的代码更改。 这是我的配置: 我的项目完全在Kotlin Kotlin版本1.1.60 Gradle版本4.4 Android构建工具版本3.1.0-alpha04 Android Studio 3.0(稳定) Java 8 数据绑定已启用 使用Kapt 即时运行被禁用 我还没有确认Java代码是否会显示相同的问题。 有没有人看过这个,find了解决办法?

Kotlin 1.2.10和Java 9对自动模块有相反的规定吗?

我有一个使用Kotlin Gradle插件的Gradle项目。 我想建立一个Java 9模块,所以我的目录结构如下所示: src/main/java/ – module-info.java src/main/kotlin/ – Foo.kt – Bar.kt build.gradle … 我的build.gradle声明以下依赖项: dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.10” compile “org.jetbrains.kotlin:kotlin-reflect:1.2.10” compile “org.junit.jupiter:junit-jupiter-api:5.0.2” } 我在我的Kotlin源码( Foo.kt , Bar.kt ,…)中使用所有这些依赖关系。 一切工作hunky-dory,如果我写我的module-info.java像这样: module my.module { requires kotlin.stdlib; exports my.module.pkg; } 如果我在compileJava任务中使用这种技术将所有的编译时间依赖关系提供给javac 。 但是,如果我在compileJava任务(编译module-info.java )期间打开-Xlint:all的Java编译器,我会得到以下警告: /path/to/my.module/src/main/java/module-info.java:26: warning: requires directive for an automatic module requires kotlin.stdlib; ^ 所以在这里我们有Java编译器, javac抱怨kotlin.stdlib是一个自动模块,所以我不应该有一个kotlin.stdlib子句。 […]

在MANIFEST.MF中将Kotlin类指定为Main-Class入口点?

我如何明确告诉shadowJar使用Kotlin文件作为生成的uberJar的入口点? (或者,你喜欢胖胖的JAR 。) 笨拙地编辑META-INF/MANIFEST.MF并将其替换为zip文件(使用GUI将其放回): thufir@dur:~/NetBeansProjects/kotlin/build/libs$ thufir@dur:~/NetBeansProjects/kotlin/build/libs$ ll total 900 drwxrwxr-x 2 thufir thufir 4096 Nov 5 03:42 ./ drwxrwxr-x 8 thufir thufir 4096 Nov 5 03:42 ../ -rw-rw-r– 1 thufir thufir 903184 Nov 5 03:42 kotlinAdder.jar thufir@dur:~/NetBeansProjects/kotlin/build/libs$ thufir@dur:~/NetBeansProjects/kotlin/build/libs$ jar xf kotlinAdder.jar thufir@dur:~/NetBeansProjects/kotlin/build/libs$ thufir@dur:~/NetBeansProjects/kotlin/build/libs$ ll total 928 drwxrwxr-x 7 thufir thufir 4096 Nov 5 03:42 ./ […]

Kotlin Dagger2找不到符号ApplicationModule_ProvideApplicationFactory

我试图用Kotlin使用Dagger2,但今天试图编译得到这个错误: 错误:任务’:app:compileDebugJavaWithJavac’的执行失败。 错误:(5,43)错误:找不到符号类ApplicationModule_ProvideApplicationFactory (应用程序)Build.gradle apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ android { compileSdkVersion 23 buildToolsVersion “23.0.3” defaultConfig { applicationId “com.ilyarb.geotags” minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } sourceSets { main.java.srcDirs += ‘src/main/kotlin’ } dexOptions { javaMaxHeapSize “2048M” } } […]

将库添加到Gradle Kotlin应用程序

我将简单的Kitlon文件转换成库,文件是: Display.kt : package hello fun main(args: Array) { println(“Hello World!”) } 已经被编译成库使用命令: kotlinc Display.kt -d Display.jar 输出已被交叉检查,使用命令工作: kotlin -classpath Display.jar hello.DisplayKt 然后我把它移动到文件夹src/main/resources ,然后尝试从另一个应用程序调用它,使用下面的代码: Hello.kt : package hello import hello.DisplayKt fun main(args: Array) { println(“Hi”) } 并定义build.gradle文件如下(试图把我读到的所有选项来解决我的情况): // set up the kotlin-gradle plugin buildscript { ext.kotlin_version = ‘1.1.2-2’ repositories { mavenCentral() } dependencies { classpath […]

如何运行Kotlin / Native win32示例

我试图通过以下博客运行Kotlin / Native v0.3 win32示例: https://blog.jetbrains.com/kotlin/2017/06/kotlinnative-v0-3-is-out/ 我按照博客末尾的说明下载了x86-64 Windows zip文件。 我运行kotlin-native-windows-0.3\samples>gradlew.bat ,它下载了一些东西,然后说“构建成功”。 (我不确定这一步是否有必要) 2.1但是,如果我在这个文件夹中运行kotlin-native-windows-0.3\samples>gradlew build ,我得到了一些失败: C:\ Users \ OO \ Documents \ kotlin-native-windows-0.3 \ samples> gradlew build:concurrent:assemble UP-TO-DATE:concurrent:check UP-TO-DATE:concurrent:downloadKonanCompiler:concurrent:genMessageChannelInteropStubs UP-TO -DATE:concurrent:compileCpp FAILED 失败:生成失败,出现exception。 出了什么问题:执行任务’:concurrent:compileCpp’失败。 启动进程“command”./buildCpp.sh时出现问题 尝试:运行–stacktrace选项来获取堆栈跟踪。 运行–info或–debug选项来获得更多的日志输出。 构建失败 然后运行kotlin-native-windows-0.3\samples\win32>build.bat ,我又得到了一个错误。 C:\Users\OO\Documents\kotlin-native-windows-0.3\samples\win32>build.bat exception: java.lang.IllegalStateException: Could not find “win32” in [C:\Users\OO\Documents\kotlin-native-windows-0.3\samples\win32, C:\Users\OO\.konan\klib, C:\Users\OO\DOCUME~1\KOTLIN~1.3\bin\..\klib]. at org.jetbrains.kotlin.backend.konan.library.KonanLibrarySearchPathResolver.resolve(SearchPathResolver.kt:71) at org.jetbrains.kotlin.backend.konan.KonanConfig$librariesFound$2.invoke(KonanConfig.kt:70) […]

如何导入Kotlin(Gradle)构建的ShadowJar插件?

构建失败: thufir@dur:~/NetBeansProjects/kotlin_dsl$ thufir@dur:~/NetBeansProjects/kotlin_dsl$ gradle clean run > Configure project : e: /home/thufir/NetBeansProjects/kotlin_dsl/build.gradle.kts:4:12: Unresolved reference: github FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project ‘kotlin_dsl’. > Could not open cache directory 74ykawxta6db3b2bfk9grjikp (/home/thufir/.gradle/caches/4.3.1/gradle-kotlin-dsl/74ykawxta6db3b2bfk9grjikp). > Internal error: unable to compile script, see log for details * Try: Run with […]

在一个Android项目中,Jacoco报告了Kotlin类的unit testing覆盖率

我正在使用Android Gradle插件3.0.0。 我正在将一个Android应用程序从java移植到kotlin。 我的应用程序在Java和Kotlin中有类,测试用Java。 我运行./gradlew clean jacocoTestReport 。 这运行unit testing( src/test )和仪器测试( src/androidTest )。 jacoco在app/build/reports/jacoco/jacocoTestReport/html/index.html中生成的报告没有显示确实被unit testing覆盖的Kotlin类的覆盖率。 报告确实显示了仪器测试的覆盖范围。 注:我遇到了这些其他问题,这是不完全相同的问题: JaCoCo返回0%Kotlin和Android 3.0的覆盖率在仪器测试代码覆盖率方面存在问题,而不是unit testing。 Android Studio JaCoCo报告0%的覆盖率在Android Studio内部存在代码覆盖率方面的问题,但不是Kotlin特有的。 我的应用程序模块的build.gradle的相关部分: apply plugin: ‘jacoco’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-kapt’ … android { defaultConfig { sourceSets { main.java.srcDirs += “$projectDir/src/main/kotlin” } } testOptions { unitTests { all { jvmArgs ‘-noverify’, […]

在库模块中使用Kotlin,而不在app模块中使用它

我试图在库模块中使用Kotlin,而不是在应用程序模块中使用它。 应用程序模块只使用Java,不使用库中的任何Kotlin类。 Gradle不会编译: Error:(2, 1) A problem occurred evaluating project ‘:’. > Plugin with id ‘kotlin-android’ not found. 我所做的包括Kotlin的更改: {库根} / build.gradle buildscript { ext.kotlin_version = ‘1.1.3-2’ repositories { jcenter() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” … } allprojects { repositories { jcenter() } } {库根} / {库模块} / build.gradle apply plugin: ‘com.android.library’ apply plugin: ‘kotlin-android’ […]