我已经安装了kotlin插件到我的android studio项目中。代码符合了一个问题。 当我从java类调用它时,它也会执行。 它给我的警告“附加到这个项目的一些Kotlin库有不支持的格式。请更新库或插件”。 println()函数在IDE中也不被识别。 test.kt fun foo(){ println(“ad”) } public class iTar{ public fun printAll( vararg a: String ){ for(item in a)println(item) } } 的build.gradle buildscript { ext.kotlin_version = ‘0.8.679’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ android { compileSdkVersion 20 buildToolsVersion “20.0.0” sourceSets { […]
我有一个使用Coroutines库的Kotlin编写的已发布的应用程序,主要与Retrofit2一起用于API请求。 我正在使用另一个库, Kotlin Coroutines for Retrofit ,它将Coroutines和Retrofit2联系在一起。 在我的最新版本中,为了减小APK的大小,我将minifyEnabled true设置minifyEnabled true并按照我使用的库的指示添加了ProGuard规则。 问题: Google Play控制台通知我关于以下设备的崩溃:BQ Aquaris U Plus,Samsung Galaxy Grand Neo Plus,RCA 7 Voyager。 该应用程序在大多数设备上正常工作 堆栈跟踪: java.lang.RuntimeException: at kotlinx.coroutines.experimental.DispatchTask.run (CoroutineDispatcher.kt:127) at android.os.Handler.handleCallback (Handler.java:751) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6119) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776) Caused by: java.util.ServiceConfigurationError: at java.util.ServiceLoader.fail […]
截至Crucible 4.2.1版本,Kotlin文件没有内置的语法高亮支持。 我已经填写了一个function请求 。 但是,现在,唯一的可能是添加一个自定义的语法配置,如这里所述。 有没有人已经做到了,可以共享配置?
我是kotlin编程的新手。 我想要的是,我想从列表中删除一个特定的数据,但是当我这样做,我的应用程序崩溃。 for ((pos, i) in listTotal!!.withIndex()) { if (pos != 0 && pos != listTotal!!.size – 1) { if (paymentsAndTagsModel.tagName == i.header) { //listTotal!!.removeAt(pos) listTotal!!.remove(i) } } } 要么 for ((pos,i) in listTotal!!.listIterator().withIndex()){ if (i.header == paymentsAndTagsModel.tagName){ listTotal!!.listIterator(pos).remove() } } 我得到的例外 java.lang.IllegalStateException
我正在考虑将Java(Android)库移植到Kotlin。 我真的很喜欢Kotlin,而Java的好处是可以减少库中的bug数量。 由于图书馆的目标是资源受限的环境,我担心将图书馆移植到Kotlin会带来额外的开销。 Kotlin库(分发为.class文件)是否引入了与Java库相比的运行时间或额外开销? 由于Kotlin,最终的Android应用程序会变得更大还是更慢?
我使用下面的maven pom.xml文件,不能生成querydsl文件。 我find了一个questrion: Kotlin-Kapt注释处理器与maven不兼容 我想从kotlin实体类生成jpa querydsl文件。 有一个非常好的例子在线如何使用gradle生成dsl文件https://github.com/JetBrains/kotlin-examples/blob/master/gradle/kotlin-querydsl/build.gradle 。 然而,我试图在maven中实现这一点,并没有运气。 我目前的pom在下面。 有谁知道这个问题可能是什么? 提前致谢。 它使用querydsl3,我使用4 4.0.0 cn.techcave.chat jpa 0.0.1-SNAPSHOT jar jpa Kotlin Demo project for Spring Boot JPA org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE true UTF-8 UTF-8 1.8 1.2.10 org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-data-rest org.springframework.data spring-data-rest-hal-browser org.jetbrains.kotlin kotlin-stdlib-jdk8 ${kotlin.version} org.jetbrains.kotlin kotlin-reflect ${kotlin.version} mysql mysql-connector-java runtime io.springfox springfox-swagger-ui 2.8.0 io.springfox springfox-swagger2 2.8.0 […]
我有一个Kolin类A,其属性可以在主构造器中提供,或者由A的次构造器中的工厂创建。 interface I class O : I class A (val i: I) { constructor(): this(factory!!.create()) } interface Factory { fun create(): I } class MyFactory: Factory { override fun create(): I { return O() } } var factory: Factory? = null fun main(args: Array) { factory = MyFactory() A() } 当我将这个代码编译成JavaScript(Kolin编译器版本1.0.6-release-127)并在浏览器(Safari 10.0.3)中运行它时,出现以下运行时错误: ReferenceError:Can’t find variable: […]
我有一个用Java编写的函数转换为Kotlin特定的问题。 这里用Java编写: private boolean isOldOemCommissioningFormat(byte[] assetData) { if (assetData == null || assetData.length > 6) & 0x01) == 0; return false; } 但是,当我转换到使用Android Studio IDE转换器Kotlin它给了我这个: private fun isOldOemCommissioningFormat(assetData: ByteArray?): Boolean { if (assetData == null || assetData.size < mAssetDataDelimeterByteCount + mAssetDataOwnerIdByteCount + mAssetDataIdLeadingZerosByteCount + mAssetDataIdByteCount) return false val oemMarkerIndex = mAssetDataDelimeterByteCount + mAssetDataIdLeadingZerosByteCount + mAssetDataIdByteCount […]
在Java中,我们可以这样做Events.handler(Handshake.class, hs -> out.println(hs)); 但是在Kotlin中,我试图复制这个行为来取代这个: Events.handler(Handshake::class, object : EventHandler { override fun handle(event: Handshake) { println(event.sent) } }) 用更方便: Events.handler(Handshake::class, EventHandler { println(it.sent) }) 出于某种原因参考EventHandler : 更好的是,但是我想使用更短的东西,像这样: Events.handler(Handshake::class, { println(it.sent) }) 或者使用广告的function来使用这样的方法: Events.handler(Handshake::class) { println(it.sent) } 这是我的Events对象: import java.util.* import kotlin.reflect.KClass object Events { private val map = HashMap<Class, Set<EventHandler>>() fun handler(eventType: KClass, handler: EventHandler) […]
我正在看这个Kotlin对象声明: object A : B({ variableName1 = “text1” variableName2 = “text2” params { param(“Foo”, “Bar”) } }) 而我无法弄清楚B类构造函数的参数是什么。 我在这个例子中有目的地提取了信息,但是B类实际上是 jetbrains.buildServer.configs.kotlin.v10.BuildType 而我无法find该types的文档。 我发现了一些接近的东西,但它是一个接口的定义,因此没有构造函数。 总而言之,Kotlin的这个构造是什么? { variableName1 = “text1” variableName2 = “text2” params { param(“Foo”, “Bar”) } }