如何在android中的kotlin读取和写入txt文件

我还是一个在kotlin和android studio的初学者。 我可以访问大多数的Android小部件,但我无法访问文件,到目前为止,我设法遇到只有下面的代码不起作用。 该应用程序崩溃… var recordsFile = File(“/LET/Records.txt”) recordsFile.appendText(“record goes here”) 如果我也可以知道如何在特定位置创建文件,将会非常感激。 就像在根目录或内部存储器或内部存储器中的文件一样。 谢谢..

Gradle构建扫描错误:事件接收器已关闭

我想按照上一个Android Weekly中的建议尝试Gradle Build Scans 。 不幸的是,将插件和buildScan标签添加到我的build.gradle文件后,Gradle同步会产生以下错误:“ 错误:原因:事件接收器已关闭 ”。 有没有人知道这是什么原因? 我尝试了Android的Gradle和Gradle Plugin版本的试验,禁用Java 8等的支持,但没有任何帮助。 但是,当我把这个样本Kotlin应用程序,我正在经历,一切都很好。 我的build.gradle文件如下所示: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.supportLibVersion = “24.2.1” ext.espressoLibVersion = “2.2.2” ext.stethoLibVersion = “1.4.1” ext.androidTestVersion = “0.4.1” ext.leakCanaryLibVersion = “1.4” repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.1.3’ } } […]

在kotlinx.html DSL中写入原始html代码

我正在使用Kotlin的html库kotlinx.html进行动态html构建。 对于调试建议我想写一个标签作为一个原始的HTML。 但我找不到任何方法。 简单的文本添加替换字符像<到他们的代码,所以它没有帮助: StringBuilder().appendHTML().html { body { +””” get=form id=3333 ok “””.trimIndent() } }

非常非常慢的Gradle在Android Studio上构建

这是我的配置: MBP 2015,8GB RAM,SSD Android Studio 2.2.3 平均而言,建造时间为7/8分钟,有时为10/12分钟 我已经尝试了一切,我可以在网上find,但似乎没有工作: —自定义VM选项: -Xms1024m -Xmx8192m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=440m -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 —编译/按需配置 —并行编译/编译模块 — Gradle /离线工作 — gradle.properties文件: org.gradle.daemon=true org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -noverify org.gradle.parallel=true org.gradle.configureondemand=true android.enableBuildCache=true 有没有人知道发生了什么事情,因为这太荒谬了 更新: 从那以后,我换了一个16GB的内存,显然有一些改进,我的印象是不到一分钟左右,但这需要3-4分钟,这仍然是不可接受的:这是Gradle的一部分我发现的日志需要太长的时间: git log –pretty=format:’%h %s’ :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preAlphaBuild UP-TO-DATE :app:preBirdsBuild UP-TO-DATE :app:preKfgBuild UP-TO-DATE :app:prePenBuild UP-TO-DATE :app:prePrelaunchBuild UP-TO-DATE […]

是否有一个函数式编程习惯用于“从列表开始选择并减少到结果满足谓词”?

假设我有一个数字列表,我需要知道有多少元素,我将不得不从它的开始选择至少得到所需的总和。 该算法是微不足道的:我从列表的开头挑选数字,直到所有选取的数字之和超过一定数量。 我可以这样写: fun pickEnough(list: List, enough: Double): List? { var soFar = 0.0 var index = 0 for (index in 0..list.size) { soFar += list[index] if (soFar > enough) { return list.subList(0, index) } } return null } 一个低效的,但更一般的解决方案是产生所有可能的子列表,并选择第一个减少结果是足够好的: fun pickEnough(list: List, reducer: (T, T) -> T, enough: (T) -> Boolean): List? = list.indices […]

用多参数扩展类

我有一个叫做A的类: open class A (a: String, b: String, c: String) 而一个扩展了A的类B: class B(a: String, b: String, c: String, d: String) : A(a, b, c) 我的问题是,如果有办法做这样的事情,为了避免在B构造函数中声明A的所有参数: class B(super, d:String) : A(super) 如果不是,应该有=)

在使用maven时,Kotlin不是从src / main / kotlin编译的

kotlin编译器似乎只是试图编译src / main / java中的.kt文件,而忽略了src / main / kotlin。 但是,IntelliJ IDE中的一切似乎都正确链接。 没有错误。 下面是我的kotlin插件配置: kotlin-maven-plugin org.jetbrains.kotlin ${kotlin.version} compile compile ${project.basedir}/src/main/kotlin ${project.basedir}/src/main/java test-compile test-compile ${project.basedir}/src/test/kotlin ${project.basedir}/src/test/java 但是,当我运行mvn clean install时,kotlin编译器似乎不运行。 所以我尝试直接从插​​件运行kotlin编译器。 [INFO] — kotlin-maven-plugin:1.1.2:compile (default-cli) @ eagle-client-core — [INFO] Kotlin Compiler version 1.1.2 [INFO] Compiling Kotlin sources from [C:\Users\me\workspace\Project\Clients\project-client\project-client-core\src\main\java] 正如你所看到的,src / main / java正在被扫描,但不是src / main / kotlin。 […]

如何使用Espresso访问外部网站上的元素

使用espresso,我们点击一​​个登录按钮,启动一个外部网站(Chrome自定义标签),您可以登录,然后重定向到我们的Android应用程序。 在浓咖啡中有一种方法可以: 1)validation正确的URL正在启动 2)访问网站上的元素,以便我可以输入登录信息并继续登录 当我尝试在Espresso Launch Navigator中查看它时,没有任何东西显示在页面上,如果我尝试记录,则不会在页面上输入任何东西。 这是我到目前为止(这是在Kotlin(不是Java)): 这里是显示的错误: 它启动我的应用程序,选择登录按钮,打开网站,但它不能访问的元素。 我也试过: 更新:这是使用Chrome自定义选项卡(不是Web视图),所以Espresso网站无法正常工作。

Kotlin Spring Boot使用Map创建urlencoded POST请求

我刚开始玩Kotlin和Spring Boot,并决定编写一个简单的端点,它需要一个表单urlencode的POST请求。 我不想为身体写一个实际的数据类,所以我试图只使用一个地图为身体,希望我可以访问键/值对。 我第一次尝试: @RestController class MyController { @RequestMapping(value = “/endpoint”, method = arrayOf(RequestMethod.POST), consumes = arrayOf(“application/x-www-form-urlencoded”)) fun myEndpoint(@RequestBody body: Map): String { // Do stuff } } 但是,这导致了关于不支持媒体types的415错误…我读的是由于使用@RequestBody和表单urlencoded POST。 我随后尝试使用@ModelAttribute,而不是接收 无法实例化[java.util.Map]:指定的类是一个接口 我完全是黑客攻击,这并不奇怪。 我也尝试没有任何身体的注释,但没有注入任何forms的参数。 我知道我可以添加一个数据类来解决这个问题,但我想知道这是否可以一般地使用Map来完成,因为我之前在Java中做过类似的事情。 谢谢。

Jinq在Kotlin – 如何将lambda转换为java SerializedLambda?

我可以在Kotlin有可序列化的lambda吗? 我正在尝试使用Kotlin的Jinq库,但它需要可序列化的lambdaexpression式。 有没有可能的语法? 更新: 我的代码: var temp=anyDao.streamAll(Task::class.java) .where { t->t.taskStatus== TaskStatus.accepted } .collect(Collectors.toList()); 我得到这个错误: Caused by: java.lang.IllegalArgumentException: Could not extract code from lambda. This error sometimes occurs because your lambda references objects that aren’t Serializable. 在lambda中引用的所有对象都是可序列化的(代码在java中没有错误)。 更新2 调试后,似乎kotlin lambda没有被转换成Jinq所需的java.lang.invoke.SerializedLambda来获取信息。 所以问题是如何将其转换为SerializedLambda。