草庐IT

kotlin-experimental

全部标签

android - Kotlin 协同程序 - 如果一段时间后第一个任务没有完成,则开始另一个任务

我正在使用Kotlin协程从服务器获取数据,我正在将延迟传递给其他函数。如果服务器在2000毫秒内没有给出答案,我想从本地RoomDB中检索对象(如果它存在于本地数据库中),但如果我最终从服务器接收到数据,我想保存在在本地数据库中以备将来调用。我怎样才能做到这一点?想过用withTimeout,但是在这种情况下,超时后没有等待服务器的响应。overridefungetDocument():Deferred{returnGlobalScope.async{withTimeoutOrNull(timeOut){serverC.getDocument().await()}?:dbC.getD

android - Kotlin协程,有没有更好的方法来返回这个值?

与协程作斗争,但有没有更好的方法来使用/获取此处长时间运行的调用的值,然后再将其传递给带有回调的另一个网络协程?我见过其他人,但我似乎无法使用最新的droid协程版本的值,就像我似乎无法使这项工作一样KotlinCoroutineswithreturningvalueprivatesuspendfunlaunchGeneratePayload():String?{returnwithContext(Dispatchers.Default){try{valpayloadString=slowStringGeneration()//Slowreturn@withContextpayload

android - Kotlin 库 'classes.jar' 的格式不受支持。请更新库或插件

此消息出现在项目同步中。我尝试清理并重建项目,但没有成功。我使用的是最新的插件版本0.12.275,“org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.213”和“org.jetbrains.kotlin:kotlin-stdlib:0.12.213”我已经尝试使用稳定版本0.12.200的插件和库,但我得到了同样的错误。我正在使用AndroidStudioAI-141.1972460(金丝雀channel)。 最佳答案 看起来问题出在我的*.aar库中,它包含在项目中-它是用旧版本的Ko

android - 部署到 Android、桌面和浏览器的单个 Kotlin+libgdx 代码库?

这可能吗?我认为部署到Android和桌面应该不会太难(因为Java已经可以做到)。我了解到Kotlin也可以转译为JavaScript。这是否意味着我可以为所有三个目标部署相同的代码库,或者我需要为浏览器使用不同的代码?(在使用Kotlin定位浏览器时甚至可以使用libgdx吗?) 最佳答案 这取决于您的代码库。首先,Kotlin2JS没有正式发布,它有很多问题,所以为JVM编译的代码在JavaScript中会运行失败。其次,您的代码库不应依赖于Java类库(即java.lang、java.util、java.io等),因为Kot

android - Kotlin-allopen for android

是否可以使用kotlin-allopengradle插件通过mockito进行android测试?我尝试将kotlin-allopen插件添加到我的build.gradle并定义注释。buildscript{ext.kotlin_version='1.0.6'dependencies{classpath"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"classpath"org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"}}applyplugin:'com.andr

android - Kotlin 综合属性

我注意到Kotlin合成属性不适用于CustomView。我不知道这是不是故意的。读取生成的java类时,我看到缓存存在:privateHashMap_$_findViewCache;但从未使用过。相反,只要需要View,就会调用findViewById。这是默认行为吗?合成属性仅适用于Activity和fragment? 最佳答案 Thisworksnow.Blogpostonkotlin-android-extensions自定义类应生成并使用缓存:itemTitle.text="HelloWorld!"这在自定义View类中变

android - Kotlin 的 EventBus 不工作

我是Android新手,正在尝试使用EventBus将消息从Fragment发送到其容器Activity。但是,我收到错误:D/EventBus:Nosubscribersregisteredforeventclasscom.app.todo.controllers.task.TaskListFragment$TaskCreateSelectEvent以下是与EventBus相关的Activity类中的代码:publicclassMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?

android - 无法在空对象上获取属性 'kotlinOutputDir' - Kotlin 和 Spock

我正在尝试使用SpockFramework测试Kotlin类。当我的项目中只有Java类时,一切正常。但是在将1.1.51版本的kotlin添加到我的项目后,测试停止工作,现在我收到这样的错误:Error:Executionfailedfortask':app:compileDebugUnitTestGroovyWithGroovyc'.>Cannotgetproperty'kotlinOutputDir'onnullobject我正在使用AndroidStudio3.0Beta7这是我的项目和模块build.gradle文件:项目build.gradle//Top-levelbuil

android - 为什么我在 Kotlin 中使用原始的 parseList 函数时得不到正确的结果?

我正在为Android开发人员学习Kotlin中关于Anko的示例代码(书籍)https://github.com/antoniolg/Kotlin-for-Android-Developers方法一来自样例代码,重写了parseList,但是比较难理解。所以我尝试使用方法2而不是方法1,方法2使用原始的parseList函数,但是当我使用方法2时我得到的是空白记录,我在方法2中犯了什么错误classDayForecast(varmap:MutableMap){var_id:Longbymapvardate:Longbymapvardescription:Stringbymapvarh

android - Kotlin:不可变类型对可变类型的内部变量的只读访问

在学习Android中的ViewModel时,出现了一个感觉Kotlin旨在解决的问题。在下面的代码中,我们可以看到MutableLiveData值被用于编辑值和指标。但是,我们不希望这些可变值暴露给其他任何东西,特别是Android生命周期的成员。我们确实希望Android生命周期成员有权访问读取值但不能设置它们。因此,下面显示的3个公开函数属于LiveData不可变类型。是否有更简单或更简洁的方法来公开可在内部编辑的只读值?这似乎是Kotlin旨在避免的:样板式冗长。classHomeListViewModel:ViewModel(){//Privatemutabledatapri