Tag: kotlin

Kotlin Android扩展和片段

如何使用带Fragment的Kotlin Android扩展? 如果我在onCreateView()使用它们,我得到这个NullPointerException异常: 导致:java.lang.NullPointerException:试图调用虚拟方法'android.view.View android.view.View.findViewById(int)'对空引用 这里是片段代码: package com.obaied.testrun.Fragment import android.os.Bundle import android.support.v4.app.Fragment import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.obaied.acaan.R import kotlinx.android.synthetic.main.fragment_card_selector.* public class CardSelectorFragment : Fragment() { val TAG = javaClass.canonicalName companion object { fun newInstance(): CardSelectorFragment { return CardSelectorFragment() } } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { […]

Proguard和Kotlin-Reflect / Kotlin注释

寻找一些帮助pro pro的人的帮助。 在升级到kotlin 1.1.2-3之后,kotlin-reflect使用的注释(jackson-module-kotlin v v2.8.8所需的依赖项)正在被剥离。 从proguard错误是: Warning:kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly 这只是一些注释,而不仅仅是ReadOnly。 我们已经尝试添加一个很好的醇'但所有错误仍然存​​在: -keep class org.jetbrains.kotlin.** { *; } -keep class org.jetbrains.annotations.** { *; } -keepclassmembers class ** { @org.jetbrains.annotations.ReadOnly public *; } 查看ReadOnly的源代码,它是一个带有java.lang.annotations.* @RetentionPolicy.CLASS @Target java.lang.annotations.*为@RetentionPolicy.CLASS @Target , @RetentionPolicy.CLASS , @RetentionPolicy.CLASS @Target

用Kotlin编写javascript应用程序

我最近开始看看Kotlin,并设法创建了我的第一个JVM应用程序。 拥有一种编译Java和JS的单一语言是非常酷的。 所以,现在我开始玩Kotlin2js,并尝试了解Javascript的互操作性,以及使用JS框架(如jQuery)的可能性。 我发现了一些博客帖子和示例: http : //blog.jetbrains.com/kotlin/2013/10/writing-kotlin-in-the-browser/ http://blog.jetbrains.com/kotlin/2014/ 12 / javascript-interop / https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kotlin2JsProject/mainProject/src/main/kotlin/例如/ main.kt 有没有Kotlin JS库的文档? 这还没有在http://kotlinlang.org/api/latest/jvm/stdlib/index.html提及 我第一次编译了一个简单的示例应用程序,它使用import kotlin.browser.*与gradle作为构建系统(最后, 在这里有一些帮助 ,再次感谢!)。 比我导入IDEA的项目,突然它不能编译了,我不得不改变导入import js.dom.html.* 。 那么,我想它使用不同版本的库? (和IDEA添加apply plugin: 'kotlin'到我的build.gradle除了kotlin2js,我猜这是行不通的。) IDEA将kotlin-jslib.jar复制到它的清单中的“Implementation-Version:0.7.270”。 对于使用gradle的编译,我使用了kotlin 1.0.1-1,而且我很确定在创建项目时我也在IDEA中选择了这个版本。 那么,了解Kotlin2js和Kotlin-js-lib的最佳信息来源是什么? 特别是Javascript的互操作性,如何使用jQuery框架(似乎在kotlin-js-lib中有jQuery支持),还有,我怎样才能使用其他不支持Kotlin的框架。 我明白,Kotlin有dynamic关键字,并且当我尝试使用它时,会提到noImpl导致编译错误。 也许现在最好的办法是看Kotlin的来源? 那么这是一个相当长的,非结构化的问题,涵盖了几个方面,但这是我目前的学习状态Kotlin :-)也许其他人遇到同样的问题。

Kotlin类NoClassDefFoundError崩溃

我有一个现有的Android项目,使用以下库: AutoValue Dagger2 RxJava Retrolambda 我正在尝试添加Kotlin支持,以便我可以将项目慢慢迁移到Kotlin。 这是我所做的。 增加了Kotlin依赖。 将其中一个类转换为Kt类,并转移到src/main/kotlin/..package.. 源集中添加了kotlin。 sourceSets {main.java.srcDirs + ='src / main / kotlin'} 当我做一个干净的生成和部署应用程序,我得到NoClassDefFoundError异常。 但是,如果我再次部署它工作得很好。 有什么建议么? 我在课堂上没有任何注释,所以我没有申请kapt插件。 注意:我正在使用最新的kotlin 1.0.4。 我也有即时运行禁用。

用Kotlin配置Gradle

我试图用gradle来使用kotlin,但是我无法用Intellij Idea 15成功地创建一个项目。 我已经创建了两个模块hello-java和hello-kotlin简单项目。 hello-java是普通的java项目,它正在编译和运行非常好。 hello-kotlin是简单的kotin模块,只有一个* .kt文件和build.gradle文件。 这里是来源: 的build.gradle group 'pl.fzymek.kotlin' version '1.0-SNAPSHOT' buildscript { repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.10.4" } } apply plugin: 'kotlin' apply plugin: 'application' mainClassName = 'HelloKotlinKt' repositories { mavenCentral() } jar { manifest { attributes 'Main-Class': mainClassName } } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:0.10.4" } HelloKotlin.kt fun main(args: […]

如何将kotlin源文件转换为java源文件

我有一个Kotlin源文件,但是我想把它翻译成Java。 我如何将Kotlin转换为Java源代码?

“更喜欢在Kotlin上运行匕首处理器”

每当我做一个注入到一个kotlin类(顺便说一下,我有一个混合的Android项目与kotlin和Java),我在构建中得到这个笔记。 例如,在这个gradle任务之后: compileStagingDebugJavaWithJavac (StagingDebug是我的构建变体),我得到这个消息: “注意:为com.packageNameXXX.CourseDiscoveryMapFragment生成MembersInjector或Factory,而不是使用该类来运行匕首处理器。 我的CourseDiscoveryMapFragment代码可以在这里看到: class CourseDiscoveryMapFragment : Fragment(){ @Inject lateinit var presenter: CourseDiscoveryMapPresenter lateinit var mapView: MapView override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_discovery_map, container, false) MapsInitializer.initialize(activity) mapView = view.mapView mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE)) (activity as BaseActivity) .activityComponent.inject(this) } 而我的ActivityComponent是: @ActivityScope @Subcomponent(modules = ActivityModule.class) public interface ActivityComponent { void […]

过时的Kotlin运行时警告(Kotlin插件1.1.2-release-Studio2.3-3)

下载并安装最新的Kotlin插件后,我有Android Studio的Kotlin Runtime警告,告诉我: “kotlin-stdlib-1.1.2”库中的Kotlin运行时版本是1.1.2,而插件版本是1.1.2-release-Studio2.3-3。 运行时库应该更新以避免兼容性问题。 我试图点击更新运行时按钮,但得到另一个消息: Gradle项目的自动库版本更新当前不受支持。 请手动更新您的build.gradle。 如何解决这个问题?

Android N Java 8功能(Jack编译器)和Kotlin互操作

更新3. KOTLIN 现在正式支持 Android的发展 。 通过GOOGLE。 YAAAAAAAAS! 更新2 :它看起来像JetBrains是真的承诺从长远来看支持Android的Kotlin 。 我是一个快乐的kotlin用户:)。 更新 :JetBrains的Hadi Hariri 提到他们将发布关于这个主题的一些信息 。 一旦他们这样做,我会更新这个帖子。 ===弃置的东西下一个=== Google刚刚发布了即将推出的Android N预览版,其中包括一些有趣的功能,其中最引人注目的是部分Java 8语言支持 。 这可能是由于Google正在开发的新Jack工具链造成的。 当前使用javac或kotlinc的工具链: javac ( .java – > .class ) – > dx ( .class – > .dex ) kotlinc ( .kt – > .class ) – > dx ( .class – > .dex […]

Kotlin二级构造函数

如何在Kotlin中声明次级构造函数? 有没有关于这个的文件? 以下不编译… class C(a : Int) { // Secondary constructor this(s : String) : this(s.length) { … } }