我正在将一些Java代码转换为Kotlin,我不太了解如何实例化Kotlin代码中定义的接口。 作为一个例子,我有一个接口(在Java代码中定义): public interface MyInterface { void onLocationMeasured(Location location); } 然后再在我的Kotlin代码中实例化这个接口: val myObj = new MyInterface { Log.d(“…”, “…”) } 它工作正常。 但是,当我将MyInterface转换为Kotlin时: interface MyInterface { fun onLocationMeasured(location: Location) } 我得到一个错误消息:当我尝试实例化Interface MyListener does not have constructors – 尽管在我看来除了语法之外没有任何变化。 我误解Kotlin中的接口是如何工作的吗?
我想具体了解各个客户端模块如何使用通用模块。 哪些是所有客户端和服务器共享的真正常见部分。 谢谢。
我已经更新Realm 0.87.5,现在我得到构建这个错误。 你能帮我一下吗? Error:Execution failed for task ‘:app:transformNativeLibsWithMergeJniLibsForDebug’. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK lib/x86/librealm-jni.so File1: /Users/[USER_NAME]/.gradle/caches/modules-2/files-2.1/io.realm/realm-android/0.87.5/ab4e1fead1380252dad0e95658e53ea0c113e89c/realm-android-0.87.5.jar File2: /Users/[USER_NAME]/.android/build-cache/97d752c34cee76117e22adcee3a9c2d132f80273/output/jni 根源依赖: 应用模块相关性:
我的Android应用程序是多模块项目: include (android-app/kotlin-android)’:application’, (pure kotlin)’:presentation’, (pure kotlin)’:domain’, (android-library/kotin-android)’:dataproviders’ 我正在使用Junit / Mockito进行测试,并且只有为kotlin android模块生成代码覆盖的问题。 经过测试的行对于android studio是可见的。 在ui.viewmodel包中测试类: 但是,对于纯粹的kotlin (例如,域,演示)测试覆盖工作正常: 我正在使用Android Studio 3.0 Canary 8您可以在github上查看我的build.gradle文件: 的build.gradle dependencies.gradle application.build.gradle presentation.build.gradle Android应用程序模块中的示例测试: MostPopularViewModelTest 纯kotlin模块中的示例测试: MostPopularPresenterTest 有人可以帮我解决我的问题吗? 我尝试通过Jacoco生成代码覆盖,但它也没有显示代码覆盖率。
我正在使用multidex构建我们的应用程序。 在我们的构建中,我开始看到很多像这样的错误: java.lang.NoClassDefFoundError:kotlin.reflect.jvm.internal.pcollections.MapEntry 在构建中找不到与kotlin.reflect相关的许多类。 它只发生在API 19和波纹管。 有谁知道可能是什么原因造成的,以及如何解决这个问题? 提前致谢!
Kotlin有一个很好的function叫做字符串模板。 我很喜欢。 val i = 10 val s = “i = $i” // evaluates to “i = 10” 但有可能在模板中有任何格式? 例如,我想在kotlin的字符串模板中格式化Double,至少要在小数点分隔符后面设置一些数字: val pi = 3.14159265358979323 val s = “pi = $pi??” // How to make it “pi = 3.14”?
我刚刚更新Android Studio到2.2,现在我的Kotlin项目不会建立。 gradle synch工作正常,但是当试图构建时,我立刻出现了一个错误: Error:Execution failed for task ‘:app:compileDebugKotlin’. > Could not initialize class com.intellij.ide.highlighter.JavaFileType 我已经检查过我的Kotlin插件是最新的。 这个错误听起来像是关于IDE和突出Java代码? 任何帮助,将不胜感激。
Kotlin允许我创建两个main()函数。 但是不允许两个myfun()函数。 main()有什么特别之处? 还有其他特殊function吗? 我可以在同一个包中创建两个静态myfun()函数吗? 我希望他们有像主要文件范围。 Test1.kt: package start fun main(args: Array) { } fun myfun(args: Array) { } Test2.kt: package start // OK! fun main(args: Array) { } // Error! Conflicting overloads fun myfun(args: Array) { }
我想贡献一个Github上的Kotlin android项目,但是我不认识Kotlin。 假设我使用Android Studio中的“反编译”将Kotlin代码转换为Java,请将我自己的java代码添加到转换后的文件中,然后将编辑后的文件转换回Kotlin。 如果我直接添加代码而不转换为java,那么生成的Kotlin代码是否一样? 如果我想在不了解Kotlin的情况下贡献一个Kotlin项目,这是一个可行的策略吗?
在Corda中是否存在解决方案的工作代码示例,如以下video中所解释的: 我看到在corda-master有一个Obligations.kt文件。 有人可以请指导我一个相同的工作示例? 提前致谢。