Tag: kotlin

java.lang.NoClassDefFoundError:kotlin / jvm / internal / intrinsics in libgdx

在我的libgdx gradle应用程序中,我有一个GroundHandler类: package com.mygdx.physics import com.badlogic.gdx.ApplicationAdapter import com.badlogic.gdx.Gdx import com.badlogic.gdx.math.Vector2 import com.badlogic.gdx.physics.box2d.Fixture import com.badlogic.gdx.physics.box2d.Body import com.badlogic.gdx.physics.box2d.BodyDef import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.physics.box2d.PolygonShape import com.badlogic.gdx.physics.box2d.World class GroundHandler(val world: World, val camera: OrthographicCamera) { private var groundBodyDef: BodyDef = BodyDef() private var groundBox: PolygonShape = PolygonShape() private var groundBody: Body? = null fun createGround() { groundBodyDef.position.set(Vector2(0f, 10f)) groundBody = […]

将Java线程转换为Kotlin

我尝试通过书“通过示例的Android游戏编程”来学习Kotlin。 现在我无法进一步创建线程。 在Java中,一个线程首先被定义为零,后来被sleep()延迟。 由于我仍然是一个新手,我不能根据我的需要定制代码。 这就是我在Kotlin中find线索的解释。 但是我不能付诸实践。 有人可以告诉我如何使用我的例子做到这一点? 我删除了线程的代码行。 public class TDView extends SurfaceView implements Runnable { //Thread related volatile boolean playing; Thread gameThread = null; //Line 29 … private void control() { try { gameThread.sleep(17); //Line 310 } catch (InterruptedException e) { //catch things here } } public void pause() { playing = false; try […]

使用Moshi反序列化可以是两种数据types之一的字段

我从OrientDB服务器收到一些JSON,如下所示: { … “out”: …, “in”: …, … } 现在这两个字段可以是两种types之一: String和我自己的自定义对象(我们称之为一个Record )。 例如,对于一个请求我可能会收到: { … “out”: “#17:0”, “in”: { … }, … } 对于另一个我可能会得到: { … “out”: { … }, “in”: “#18:2”, … } 等等。 两者都可能是String ,都可能是Records ,一个可能是一个String ,另一个可能是一个Record ,等等。 现在,当我使用Moshi对这种JSON进行反序列化时,我有两个参数out和in来保存它们各自键的值; 然而,因为这些值不是固定的数据types,所以说起来容易做起来难。 创建多个POJO(或“POKO”,我猜是因为我正在使用Kotlin)不起作用,因为这些对象可以在其他 JSON对象内部find。 我需要一个单一的对象,这些参数可以采取一个可变的数据types。 那么我该怎么做呢? 我需要在Moshi中编写一个自定义适配器来序列化/反序列化这些值吗? 如果是这样,我将如何去写一个可以分配一个特定的数据types取决于参数的值? 或者是有某种types的Kotlin类/函数/扩展函数,我可以find/写入,可以容纳两种可能的数据types? 如果它是相关的,我也使用Retrofit 2 + RxJava 2异步地进行HTTP调用,所以如果这些库中有任何数据types或函数有助于这样的事情,那么我就是耳熟能详。 即使任何人只能用Java来回答,因为我可以自己转换代码。 […]

在Vertx中,我需要将所有HTTP请求重定向到相同的URL,但HTTPS

我已经在Koltin中编写了一个Vertx-web处理程序,它将任何接收到的HTTP请求重定向到HTTPS,并且使用context.request().isSSL来确定请求是否不是SSL,并且直到我把我的代码在负载平衡器后面。 如果负载均衡器使用HTTPS与我的Vertx-web服务器通信,则认为所有用户请求都是HTTPS,即使它们不是。 如果我更改负载平衡器以与HTTP上的Vertx-web进行通信,那么即使用户已经使用HTTPS,每个请求也会被无限重定向。 然后,我也看到另一个问题,即使用context.request().absoluteURI()的重定向转到私有地址,而不是用户实际与之通信的公用地址。 在Vertx-web中是否有一个处理程序,我错过了这个,或者一些惯用的方法来解决这个问题? 我应该从JavaScript做到这一点,因为它看到的是真正的用户地址,而不是尝试服务器端重定向? 我在Kotlin编码,所以这个语言的例子都很棒! 注意: 这个问题是由作者故意编写和回答的( 自我回答问题 ),所以在SO中共享有趣问题的解决方案。

Android studio 2.3:无法初始化类org.jetbrains.kotlin.android.actions.NewKotlinActivityAction

我刚刚从金丝雀频道更新Android Studio 2.2.2到2.3 。 下载完成并应用路径文件后,android studio正在重新启动。 但重新启动android studio后,我得到下面的对话框错误: 无法加载项目:com.intellij.ide.plugins.PluginManager $ StartupAbortedException:com.intellij.diagnostic.PluginException:无法初始化类org.jetbrains.kotlin.android.actions.NewKotlinActivityAction [Plugin:org.jetbrains.kotlin] 看下面的截图,以获得更多的想法: 确定关闭对话框并重新启动android studio后,我也无法打开我的项目或创建新的项目。 有没有人更新android studio后面临同样的问题?

kapt是否支持maapt?

是否有可能在基于maven的项目中运行kapt(kotlin注释处理)? 如果是的话,我如何将kapt集成到maven构建系统中?

如何防止对话(警报)在您使用Anko触摸外部或后退时关闭

我正在用kotlin和anko创建一个警报/对话框(下面的代码),但是当你敲门或者按回来关闭它。 这是代码 alert(“TITLE”) { title(“Text”) positiveButton(“Ok”) { action() } }.show() 这里是如何解决方案将在Java(没有使用anko太) dialog.setCancelable(false); // for prevent on back pressed dialog.setCanceledOnTouchOutside(false); // for prevent on touching outside 任何想法如何使用kotlin和anko实现这一点? 谢谢 :)

如何与Kapt3一起使用lombok

当我尝试使用Kapt3运行Java和Kotlin android应用程序时: apply plugin: ‘kotlin-kapt’ javac编译失败,无数 error: cannot find symbol 为生成的方法。 这可能是由于kapt无法生成存根导致的: ‘kapt.generateStubs’ is not used by the ‘kotlin-kapt’ plugin 所有前面提到的强迫我使用旧的kapt我可以使用: compileOnly “org.projectlombok:lombok:$lombokVer” annotationProcessor “org.projectlombok:lombok:$lombokVer” kapt “org.projectlombok:lombok:$lombokVer” kapt { generateStubs = true } 然而这在测试编译期间导致失败,因为我也使用数据绑定库: 出了什么问题:执行任务失败:app:compileXDebugUnitTestJavaWithJavac’。 java.lang.RuntimeException:无法解析数据绑定编译器选项。 参数:kapt.annotations:… \ app \ build \ tmp \ kapt \ xDebugUnitTest \ wrappers \ annotations.bscplayDebugUnitTest.txt kapt.kotlin.generated:… \ app \ […]

错误在http请求返回错误时处理UI线程

我正在使用Fuel和Rxjava进行网络通话。 我已经将我的基本URL设置为localhost,而不是在服务任何东西。 我想能够处理网络错误,所以我可以在用户界面上显示某种错误信息。 这是我的GET请求的一个例子 fun getRandom(take: Int, responseHandler: (result: WikiResult) -> Unit?) { Urls.getRandomURl(take) .httpGet() .timeout(timeout) .timeoutRead(readTimeout) .rx_object(WikipediaDataDeserializer()) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ result -> val statusCode = result.component2()?.response?.statusCode when(statusCode) { -1 -> e(statusCode.toString(), result.component2()?.cause.toString()) else -> { val (data, _) = result responseHandler.invoke(data as WikiResult) } } }, { error -> e(error.cause.toString()) }) } 在我的片段上,我在异步任务中调用上面的函数 private […]

Kotlin:如何将数组传递给Java注释

我想从package io.dropwizard.validation;使用@OneOf注解package io.dropwizard.validation; Java用法: @OneOf(value = {“m”, “f”}) Kotlin用法:??? 我试过这个: @OneOf(value = arrayOf(“m”, “f”)) 和这个: @OneOf(value = [“m”, “f”]) 我得到的是: types推断失败。 期望的types不匹配: 必需:字符串 find: Array Kotlin版本:1.1.2-2