Kotlin中的Android应用程序不能正确地扩大片段布局

我有个问题。 我写了一个Java Android应用程序并转换为Kotlin。 它在Java中工作正常,但现在当我运行应用程序,它给了我一个RuntimeError。 片段不能被夸大: 错误 FATAL EXCEPTION: main Process: com.jaielsoft.www.emergencyapp, PID: 10753 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jaielsoft.www.emergencyapp/de.htw_berlin.f4.ai.aa.activities.MainActivity}: android.view.InflateException: Binary XML file line #0: Error inflating class fragment … Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class fragment …. Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter […]

如何使用Ktor Kotlin / Java应用程序中的gradle构建有效的JAR文件

我一直在试图为我的Kotlin / Java Ktor项目创建一个可执行的JAR。 用我的gradle脚本创建实际的JAR很简单,但无论如何,我不能为我的生活弄清楚如何通过错误消息:“JAR文件:无法find主类路由。主键”。 我的Kotlin主函数位于包路由中名为Main.kt的文件中。 下面是我的gradle文件。 我究竟做错了什么? buildscript { ext.kotlin_version = ‘1.2.21’ ext.ktorVersion = ‘0.9.0’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } apply plugin: ‘java’ apply plugin: ‘kotlin’ sourceCompatibility = 1.8 compileKotlin { kotlinOptions.jvmTarget = “1.8” } compileTestKotlin { kotlinOptions.jvmTarget = “1.8” } kotlin { experimental { coroutines “enable” } } […]

Kotlin stdlib操作与循环

我写了下面的代码: val src = (0 until 1000000).toList() val dest = ArrayList(src.size / 2 + 1) for (i in src) { if (i % 2 == 0) dest.add(Math.sqrt(i.toDouble())) } IntellJ(在我的情况下是AndroidStudio)问我是否要用stdlib中的操作替换for循环。 这导致以下代码: val src = (0 until 1000000).toList() val dest = ArrayList(src.size / 2 + 1) src.filter { it % 2 == 0 } .mapTo(dest) { Math.sqrt(it.toDouble()) […]

Android Kotlin仪器测试不被识别为仪器测试

我正在尝试在我的Android项目中编写一个kotlin工具测试。 这一刻是非常基本的: class SimpleTest { @Test fun aTest() { Assert.assertTrue(true) } } 当我运行它时,它说no tests were found 。 但是当我运行这个类的Java版本时,系统会提示选择我要运行测试的设备(意思是AS将其识别为仪器测试)。 Java版本看起来像这样: public class AnyTest { @Test void aTest() { Assert.assertTrue(true); } } 如果我然后将这个Java类转换为Kotlin并重新运行测试,我得到相同的no tests were found 。 我在这里错过了什么? 谢谢

Mockito / Powermock不像Kotlin预期的那样工作

我使用mockito / powermock版本1.7.0,Spring Boot 2.0.0 M2,Kotlin 1.3.0。 我正在测试一个Spring @Service类,注入一个Repository。 我想在我的测试中嘲笑这个存储库,所以我可以测试这个类本身。 我是Kotlin的新手,但我来自Java,所以我尝试了这种“java方式”,但可能我错过了一些东西… 这是我的服务界面: interface MyService { fun create(myObject: MyObject): MyObject } …及其实施: @Service class DefaultMyService : MyService { @Autowired lateinit var myRepository: MyRepository override fun create(myObject: MyObject): MyObject = this.myRepository.insert(myObject) } 这里是我的存储库(我使用Mongo的Spring Data): interface MyRepository: MongoRepository 这是我的测试课: @RunWith(PowerMockRunner::class) @PrepareForTest(MyService::class) class MyServiceTest { @Mock lateinit var myRepository: […]

在Kotlin中处理可空或空列表的习惯方式

假设我有一个List?types的variablesactivities List? 。 如果列表不为空而不是空的,我想做一些事情,否则我想做别的事情。 我想出了以下解决方案: when { activities != null && !activities.empty -> doSomething else -> doSomethingElse } Kotlin有没有更习惯的方式来做到这一点?

(Java + Kotlin)自动assembly(Autowiring):预计至少有1个bean可以作为这个依赖关系的autowire候选者

我有一个类(Java),我尝试autotire Kotlin类:Kotlin类: @Component class HelloWorld { fun test() { println(“”) } } java: @Autowired private HelloWorld hello; 错误:由:org.springframework.beans.factory.NoSuchBeanDefinitionException引起:没有find符合条件的bean [teste.payroll.HelloWorld]:期望至少1个符合自动assembly候选者的bean。 依赖注释:{@org.springframework.beans.fact

Kotlin在GridLayout单元格的底部显示一个边框

我最近刚开始尝试学习Kotlin,同时开发一个android的日历应用程序(最低API 15) 目前我有一个使用GridLayout的RecyclerView。 我需要这个网格像这样(IOS版本)每行的底部有一个边框。 我对这个代码放在哪里有一个大概的想法,但是我实际上并不知道要使用什么代码。 drawable / calendar_cell_rounded.xml(也是一个用于绿色和灰色的颜色) 任何人都可以帮助我复制Kotlin上面的图像? 谢谢

在Kotlin中使用通用输入参数声明函数文字

我不知道如何指定一个函数文字,其中的输入参数可以covary,使函数文字可以分配给它接受输入types的子types的函数。 我能想到的最简单的例子是我想要做这样的事情: var f: (Number) -> Unit = { number: Number -> println(number) } f = {int: Int -> println(number) } // <– this does not compile 这些声明不起作用: var f: (in Number) -> Unit = {number: Number ->} // doesn’t compile var f: (out Number) -> Unit = {number: Number ->} // doesn’t compile var […]

使用reflection读取Kotlin函数注释值?

给定一个像这样的接口方法(Android Retrofit),如何在运行时从Kotlin代码读取注解参数中指定的URL路径? ApiDefinition接口: @GET(“/api/somepath/objects/”) fun getObjects(…) 阅读注释值: val method = ApiDefinition::getObjects.javaMethod val verb = method!!.annotations[0].annotationClass.simpleName ?: “” // verb contains “GET” as expected // But how to get the path specified in the annotation? val path = method!!.annotations[0].???????? 更新1 感谢您的回答。 我还在苦苦挣扎,因为我看不到要使用什么types来执行以下操作: val apiMethod = ApiDefinition::getObjects ….然后将该函数引用传递到这样的方法(它被重用) private fun getHttpPathFromAnnotation(method: Method?) : String { val a […]