Tag: 安卓

只改变一个类的方法从java到kotlin

我知道如何将Java类转换为android studio中的kotlin类。 我目前正在同时学习rxJava和kotlin,更希望在kotlin中使用rx。 我在定义和声明kotlin中的变量和方法时遇到了问题。 因此,我想在java类或活动中使用相同的方法,看看它如何在kotlin中工作,如果我可以先写在java中,并改变为kotlin。 那么是否有可能在Java Studio中将单一方法转换为Android Studio或其他地方的kotlin呢?

当从kotlin调用java活动结果时,onActivityResult不会被调用

我在我的项目中使用Kotlin和Java。 我打开Kotlin结果的Java活动,但写在Kotlin中的onActivityResult函数永远不会被调用。 代码(Kotlin): override fun viewAllNotes() { val intent : Intent = Intent(this, ViewAllNotesActivity::class.java) intent.putExtra(AppConstants.VIEW_ALL_FLOW, AppConstants.VIEW_ALL_NOTES_FLOW) startActivityForResult(intent, VIEW_ALL_REQUEST_CODE) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (resultCode == Activity.RESULT_OK){ if (requestCode == VIEW_ALL_REQUEST_CODE){ if (data!!.getParcelableArrayListExtra<ListNote>(AppConstants.NOTES_LIST)!=null){ mViewModel.mNotesReminders.listNote = data.getParcelableArrayListExtra(AppConstants.NOTES_LIST) } } } } 代码(Java): @Override public void onBackPressed() { Intent […]

急于在kotlin中初始化对象?

我试图声明我的Android的SQLite迁移object声明。 每个扩展接口Migration ,我想每个人注册自己初始化与Migrator对象,作为一个对象,也是一个单身。 不幸的是(我很晚才意识到)kotlin对象被懒惰地初始化了,所以我的迁移必须在某个地方用来注册自己。 我可以接受不得不使用反射或注释,但是如果这是一个好主意或如何遵循这个方向的惯例,则不会有任何影响。

协议缓冲gradle支持Kotlin Android不工作?

我在Kotlin有一个Android项目,在那里安装正确并且可以正常工作 在root build.gradle中 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 在应用程序build.gradle apply plugin: 'kotlin-android' // … implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 一切运作良好。 它也具有Protobuf支持按照https://github.com/google/protobuf-gradle-plugin 在应用程序build.gradle它有 apply plugin: 'com.google.protobuf' // … protobuf { protoc { // Download from repositories artifact = 'com.google.protobuf:protoc:3.0.0' } plugins { javalite { // The codegen for lite comes as a separate artifact artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0' } } generateProtoTasks { all().each { […]

Kotlin – 等效于斯威夫特的“如果让+投”

我试图找出如何在kotlin中实现“if let + cast”的组合: 在迅速: if let user = getUser() as? User { // user is not nil and is an instance of User } 我看到一些文档,但他们没有说这个组合 https://medium.com/@adinugroho/unwrapping-sort-of-optional-variable-in-kotlin-9bfb640dc709 https://kotlinlang.org/docs/reference/null-safety.html

Android构建失败,kotlin-reflect和proguard

如果我包括kotlin-reflect ,我无法建立我的发布产品。 我试图添加到proguard配置: -keep class kotlin.reflect.** { *; } 但它根本没有帮助。 这是Gradle构建的错误结果: Optimizing… Unexpected error while performing partial evaluation: Class = [kotlin/reflect/jvm/internal/impl/renderer/DescriptorRendererImpl] Method = [renderPossiblyInnerType(Ljava/lang/StringBuilder;Lkotlin/reflect/jvm/internal/impl/descriptors/PossiblyInnerType;)V] Exception = [java.lang.IllegalArgumentException] (Stacks have different current sizes [0] and [1]) Warning: Exception while processing task java.io.IOException: java.lang.IllegalArgumentException: Stacks have different current sizes [0] and [1] 我正在使用kotlin 1.1.1(如果有问题,请使用gradle 3.3)

Android Studio更新到0.6后,Kotlin问题

在Android Studio更新到0.6之后,Kotlin项目gradle同步失败。 日志包含: 2014-06-11 13:43:50,138 [ 24510] INFO – .BaseProjectImportErrorHandler – Failed to import Gradle project at 'projectpath' org.gradle.tooling.BuildException: Could not run build action using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.12-all.zip'. at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:53) at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57) at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46) at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter.run(DefaultBuildActionExecuter.java:43) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.doResolveProjectInfo(GradleProjectResolver.java:183) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.access$300(GradleProjectResolver.java:64) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:358) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:330) at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:203) at […]

Android如何在Kotlin中以编程方式设置多个重力值?

在Java中是这样的: layoutParams.setGravity(Gravity.END|Gravity.BOTTOM); Kotlin如何做到这一点?

Kotlin在Android Studio上运行失败提示“Gradle同步失败:连接超时:连接请参阅IDE日志以获取更多详细信息(帮助|显示日志)”

Kotlin在Android Studio上运行并告诉我:“Gradle同步失败:连接超时:连接请参阅IDE日志以获取更多详细信息(帮助|显示日志)”,但是如果我只是新的android项目,而不是配置kotlin配置。 我的操作是这样的: 1.Install kotlin plugin . 2.configure kotlin in project . 3.convert java file to kotlin file 4.Run "app" failed 我的IDE版本: ![IDE版本] [1] 我的配置 apply plugin: 'com.android.application' //kotlin config apply plugin: 'kotlin-android' android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "com.huawei.myapplication" minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes […]

插件错误:Kotlin抛出未捕获的IllegalStateException

第二(我相信,也可能是第三)今天我遇到了这个问题 插件错误:Kotlin抛出未捕获的IllegalStateException。 唯一的选择是禁用插件。 我不这样做,只需重新启动Android Studio(3.0 Beta 6)。 到目前为止,我还没有遇到除了一次性弹出窗口以外的任何副作用,所以我想这可能只是与我的意外误导(这仍然是一个非常奇怪的原因,完全失败),但有什么办法来检查发生了什么? 因为这个错误信息没有说太多,即使我什么都不能做,所以报告这样的事情是没有用的。 如果有问题,我最近更新了kotlin插件(因为android studio向我展示了一个弹出窗口,提示我应该这样做)。 当然,我也更新了我的gradle构建文件,以便它读取 ext.kotlin_version = '1.1.4-3' 但是,因为我只是在学习Kotlin,所以我没有真正用它来说明是否可能发生了,如果我没有更新Kotlin插件的话。 所以它可能会或可能不会有关系。 ¯\ _(ツ)_ /¯