Tag: 编译

错误:无法找到或加载主类Hello.class

尝试最简单的kotlin你好世界可能: thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ ll total 32 drwxr-xr-x 2 thufir thufir 4096 Oct 27 07:28 ./ drwx—— 46 thufir thufir 16384 Oct 27 06:47 ../ -rw-r–r– 1 thufir thufir 104 Oct 27 07:27 Hello.kt thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ kotlinc Hello.kt WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean) WARNING: […]

错误:以下类的超类型无法解析。 请确保您在类路径中具有所需的依赖关系

我无法编译我的Android Kotlin项目。 我不知道这是什么… Gradle日志: 错误:以下类的超类型无法解析。 请确保您在类路径中具有所需的依赖项:class android.support.v7.app.AppCompatActivity,未解析的超类型:SupportParentable build.gradle(app) buildscript { ext.android_plugin_version = "2.3.3" ext.kotlin_version = '1.1.2-5' repositories { maven { url 'https://maven.google.com' } maven { url "https://jitpack.io" } mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:$android_plugin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { maven { url 'https://maven.google.com' } maven { url "https://jitpack.io" } mavenCentral() } } […]

Kotlin的扩展功能如何工作?

比方说,我想要一个整数,提供一个square方法。 Kotlin : fun Int.square() = this * this 用法: println("${20.square()}") DOC: 扩展实际上并不修改它们扩展的类。 通过定义扩展,不要将新成员插入到类中,而只需使用这种类型的变量的点符号来调用新函数。 我们要强调的是,扩展功能是静态调度的 我的期望是,他们只是在编译期间将它添加到扩展类的成员函数中,但这是他们明确否定的,所以我的下一个想法是它可以像“scala implicits”那样“排序”。 斯卡拉 : object IntExtensions{ implicit Class SquareableInt(i:Int){ def square = i*i } } 用法: import IntExtensions._ 接着 println(f"${20.square}") DOC: 一个隐式类被剥离成一个类和隐式方法配对,其中implciit方法模仿类的构造函数。 生成的隐式方法将具有与隐式类相同的名称。 但是,斯卡拉暗示创建一个新的类,这将禁用这个使用。 那么… Kotlin如何扩展类呢? “打电话”并没有多大的意义。

将kotlin代码编译为JVM和JavaScript

我真的很喜欢编写一个框架的想法,然后能够将其编译为jvm字节代码以及用于Web的JavaScript使用。 这是目前可能与kotlin编译器?

如何从Kotlin代码调用Javascript函数?

我正在尝试将Kotlin代码编译为Javascript。 在我的代码中,我需要将字符串编码为URI。 我的两个变种都是失败编译: class PlaceholderJS(prefix: String, placeholder: String?): Placeholder(prefix, placeholder) { override fun encode(str: String): String { return encodeURIComponent(str) } 在这个代码中,编译器找不到函数encodeURIComponent(str),它根据https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp被所有浏览器支持。 替代方案: class PlaceholderJS(prefix: String, placeholder: String?): Placeholder(prefix, placeholder) { override fun encode(str: String): String { return URLEncoder.encode(str, Charsets.UTF_8.name()) } 找不到Java类URLEncoder(在Java文件中导入)。 这适用于为JVM编译,但不是JS。 我也有Kotlin模块标有: compileKotlin2Js.kotlinOptions.moduleKind = "umd"

如何编译Kotlin以包含命令行的Java jar?

我想包括Java的罐子Kotlin。 我尝试像下面,但我有错误。 javac -encoding utf-8 javasorce/test/JavaTestClass.java jar cvf javasorce/test/JavaTestClass.jar javasorce/test/JavaTestClass.class kotlinc kotlin/CallJavaTestClass.kt -cp javasorce/test/JavaTestClass.jar -include-runtime -d kotlin/CallJavaTestClass.jar java -jar kotlin/CallJavaTestClass.jar 错误是: Exception in thread "main" java.lang.NoClassDefFoundError: javasorce/test/JavaTestClass at CallJavaTestClassKt.main(CallJavaTestClass.kt:5) Caused by: java.lang.ClassNotFoundException: javasorce.test.JavaTestClass at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) … 1 more 我使用像下面的目录: root |-javasorce | |-test | |-JavaTestClass.java |-kotlin |-CallJavaTestClass.kt 请告诉我,如果有解决方案。

为什么Kotlin字节码引用java.util.function.BiConsumer?

从我所了解的Kotlin应该可以使用JRE 6运行。但是,这个代码与在地图上的foreach失败,因为对Java 8类( java/util/function/BiConsumer )的引用, CompilerTest.kt: fun main(args: Array<String>) { val aMap = mapOf("bar" to "bat") aMap.forEach { k, v -> println("$k -> $v")} } 编译Kotlin代码: » kotlinc CompilerTest.kt -jvm-target 1.6 -include-runtime -d compilerTest.jar 在JRE 6上测试编译的代码: » docker run –rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk:6-jdk-slim java -jar compilerTest.jar Exception in thread "main" java.lang.NoClassDefFoundError: java/util/function/BiConsumer at […]

IntelliJ的Kotlin代码编译时间很长

我已经使用Kotlin的最新版本的Eclipse 2个月没有任何性能问题在我的Windows 10计算机上。 现在我想在最近的一台OSX电脑上安装和使用intelliJ (因为它是JetBrains语言…)终极版本,我刚刚安装并且从未使用过。 这两台电脑有很好的硬件,并不限制我的测试。 我的问题是,每当我的Kotlin代码有修改,编译时间在8秒到35秒之间 。 我对简约代码进行了测试: class TestKotlin { var a = 1 } 如果我改变了变量“a”,所以需要重新编译,在最好的情况下总是需要8秒才能完成编译。 由于我想用很多小函数和汇编进行实时编码,所以这种延迟太有意义了。 观众需要等待很多才能看到每个编译的结果,他们从逻辑上期望IntelliJ工具的良好性能。 在同一个项目中,我试图做同样类型的Java类 (具有单个属性),并修改其属性以触发编译,编译时间不到1秒 。 我试图用命令行手动编译代码 : kotlinc hello.kt -include-runtime -d hello.jar java -jar hello.jar 我有一些体面的编译时间,即使是接近3秒 。 当我在编译Kotlin代码时查看IntelliJ中的“消息”屏幕时,我可以看到: Information:Kotlin: Kotlin JPS plugin version 1.0.6-release-127 Information:Kotlin: Using kotlin-home = /Users/myUsername/Library/Application Support/IntelliJIdea2016.3/Kotlin/kotlinc 它停留在这里所有的编译时间,然后几乎立即做下一步: Information:Kotlin: Kotlin Compiler version 1.0.6-release-127 Information:17/01/17 […]

Kotlin从命令行编译

我需要编译一些Kotlin文件并按照Kotlin文档中的描述运行它们 不过,我的命令行一直在说这个: C:\ Users \ Tom \ Documents \ ProjectEuler \ Kotlin> kotlinc'kotlinc'不被识别为内部或外部命令,可操作程序或批处理文件。 我是一个64位Windows 7用户。 所以我下载了最新版本的编译器(1.0.6 ATM),并将这些文件解压到Program Files文件夹中。 我的可变路径是这样设置的: PATH = C:\ Program Files \ Java \ jdk1.8.0_101 \ bin; C:\ Program Files \ kotlinc \ bin \; C:\ Program Files(x86)\ Android \ android-sdk \ platform-tools; 在这一点上,我不知道,我试了两个版本的编译器,并尝试更改几次路径变量。 任何帮助赞赏。

Kotlin Android编译

我得到这个错误,不知道为什么: Error:Execution failed for task ':app:compileDebugKotlin'. > java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: 0 我认为这与android gradle插件版本不兼容kotlin gradle插件版本有关。 我没有升级任何东西,它以前工作。 但突然之间,这只是开始出现,并阻止编译过程。 有没有公​​共场所,我可以找到最新的Android工作室插件基于最新的Kotlin插件? 感谢进步,J StackTrade: * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugKotlin'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) […]