Tag: kotlin android extensions

Android Studio 3无法建立kotlin片段

我试图使用Android Studio 3.0与我现有的项目Kotlin。 我用kotlin创建了一个片段。 我试图在我的Java活动中使用kotlin片段。 但每次我尝试运行它,我都会得到 Error:(209, 5) error: cannot find symbol class BlankFragment BlankFragment.kt import android.content.Context import android.net.Uri import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup class BlankFragment : Fragment() { // TODO: Rename and change types of parameters private var mParam1: String? = null private var mParam2: String? = null private […]

如何在数据模块中使用Android Kotlin Dagger 2和Firebase Auth?

我试图建立一个应用程序,其中data模块是一个库和presentation层是实际的Android应用程序。 理想情况下,我希望firebase依赖项仅存在于data模块中,但apply plugin: ‘com.google.gms.google-services’只能从presentation模块调用apply plugin: ‘com.google.gms.google-services’ 。 把匕首2和Firebase依赖关系放在一起给了我下面的错误: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:presentation:transformDexArchiveWithExternalLibsDexMergerForDebug’. > java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 删除Firebase身份validation依赖关系或匕首2依赖关系可解决此问题。 如何在data模块中同时使用这两个库? 我的build.gradle data apply plugin: ‘com.android.library’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ apply plugin: ‘kotlin-kapt’ android { compileSdkVersion 26 buildToolsVersion ‘26.0.2’ defaultConfig { minSdkVersion […]

在beforeEachTest和afterEachTest之前不要运行方法kotlin spek android

我试图在Android上使用Spek框架编写一个测试。 但是我很困惑。 根据代码,演示者必须在beforeEachTest方法中初始化。 并且必须在afterEachTest之后的方法中清除条件。 但是当我运行这个测试时,它在mPresenter !!。setPass(PASSWORD,PASSWORD)行中失败了。 但是如果你取消它前面的两条线,那么测试就会成功。 可能是什么问题呢? 在此先感谢您的答案 object ResetPasswordPresenterTestKotlin : Spek({ include(RxSchedulersOverrideSpek) val PASSWORD = “123456aZ”; var mView = mock{} var mMockDataManager = mock{} var mToken = mock{} var mPresenter : ResetPasswordPresenter ?= null beforeEachTest { print(“beforeEachTest”) mPresenter = ResetPasswordPresenter(mMockDataManager) mPresenter!!.attachView(mView) } afterEachTest { print(“afterEachTest”) mPresenter!!.detachView() reset(mView) } describe(“Reset password is succesful”) { […]

找不到类“kotlin.jvm.internal.DefaultConstructorMarker”

我目前正在使用Kotlin编码的Android应用程序。 一切都很好,直到昨天,在某些时候我开始在logcat中有这个错误,当这种情况发生时,应用程序的内容不显示。 以下是详细的描述: 11-23 17:08:40.819 10472-10472/ch.XXX.XXX W/dalvikvm: DexOpt: resolve class illegal access: Lch/XXX/XXX/commons/features/CouponsManager; -> Lkotlin/jvm/internal/DefaultConstructorMarker; 11-23 17:08:40.819 10472-10472/ch.XXX.XXX E/dalvikvm: Could not find class ‘kotlin.jvm.internal.DefaultConstructorMarker’, referenced from method ch.XXX.XXX.commons.features.CouponsManager. 11-23 17:08:40.819 10472-10472/ch.XXX.XXX W/dalvikvm: VFY: unable to resolve check-cast 3145 (Lkotlin/jvm/internal/DefaultConstructorMarker;) in Lch/XXX/XXX/commons/features/CouponsManager; 11-23 17:08:40.819 10472-10472/ch.XXX.XXX W/dalvikvm: DexOpt: resolve class illegal access: Lch/XXX/XXX/commons/features/CouponsManager; -> Lkotlin/jvm/internal/DefaultConstructorMarker; 被引用的类是在Kotlin中编写的,在错误开始出现之前未被修改。 编辑 […]

点击一个文本视图来改变片段

我正在尝试使用Kotlin构建我的第一个Android应用程序,但是我陷入了一个非常简单的情况。 我正在使用Kotlin android扩展,我得到一个空指针exception。 用这个我用了 tvGoToRegisterFrag.setOnClickListener { goToRegister() } 我知道我可以使用 tvGoToRegisterFrag?.setOnClickListener { goToRegister() } 为了摆脱崩溃,但我仍然不知道为什么该对象是空的,单击时不做任何事情。 所有这些都是在片段中完成的,如果这改变了任何东西。

需要Kotlin函数什么都不是,而是定义为一个不同的types

我像这样定义了一个类 abstract class MvpViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) where P : BasePresenter { protected var presenter: P? = null fun bindPresenter(presenter: P): Unit { this.presenter = presenter presenter.bindView(itemView) } } presenter.bindView(itemView)给我一个错误,说明Type mismatch, required: Nothing, found: View! 。 我已经在presenter类中定义了bindView ,就像这样 abstract class BasePresenter { var view: WeakReference? = null var model: M? = null fun bindView(view: V) […]

如何将+/-function添加到kotlin android中的对接

我需要添加具有+/-function的新按钮。 如果用户第一次点击该按钮,则应该返回值 – >“ – ”(例如=> -123),如果用户再次单击该值,则应该删除( – > 123)。 计算器中的function类似于+/-按钮。 这是我的代码 Activity.kt文件 package com.tripbegins.calculator import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button import com.tripbegins.calculator.R.id.* import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } var emptyText = true fun numberEvents(view: View) { var checkButton:Boolean = false if(emptyText){ viewResult.setText(“”) } […]

布局位于库模块中时合成视图的未解决的参考

使用Kotlin 1.20.20(并不重要,旧版本的表现相同) 当布局在单独的库模块中时,Android Studio在查找和引用视图时没有问题 import kotlinx.android.synthetic.main.view_user_input.* 但是,当我尝试编译应用程序失败与Unresolved reference: view_user_input :app:compileDebugKotlin 。 在库模块中引用视图时,一切正常。 我在这里错过了什么? 添加项目结构。 所有模块都使用kotlin和kotlin扩展。 build.gradle app/ build.gradle //main application library-module-a/ build.gradle //library application library-module-b/ build.gradle //library application 这里是一个示例应用程序https://github.com/mjurkus/KotlinxTest 在KT追踪器中注册的问题

我可以推迟使用Kotlin Android扩展适配器的视图绑定

Kotlin Android扩展提供了一种直接在Activity / fragment / Adapters中使用ID的方法。 所以我想要的是适配器的通用方式,并将绑定视图职责留给适配器的用户,而不是适配器本身。 例如 : class GenericAdapter( @LayoutRes private val layoutId: Int, private var list: List, inline private val bind: (View, T, Int) -> Unit) : RecyclerView.Adapter() { override fun onBindViewHolder(holder: InnerHolder?, position: Int) { holder?.containerView?.let { bind(holder.containerView, list[position], position) } } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): InnerHolder = InnerHolder(LayoutInflater.from(parent?.context).inflate(layoutId, […]

Kotlin和Andorid配置调试

我刚刚下载了Android Studio和Java JDK。 所以,当我创建我的应用程序,它启动文件,如MainActivity.kt而是我想用/ java,我不知道如何解决这个问题。