Tag: 安卓

匕首不能提供注射Kotlin

当我尝试使用Kotlin和Dagger 2时,我有这个问题。 “接口不能提供@提供或@产生注释的方法”。 这是我的Module类: @Module class MenuActivityModule(@NonNull private val menuActivity: MenuActivity) { @Provides @MenuActivityScope fun provideGameScreenDimensions(application: Application) = GameScreenDimension(application.resources) @Provides @MenuActivityScope fun provideAudio() = AndroidAudio(menuActivity) @Provides @MenuActivityScope fun providePowerManager() = menuActivity.getSystemService(Context.POWER_SERVICE) as PowerManager @Provides @MenuActivityScope fun provideWakeLock(@NonNull powerManager: PowerManager) = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Preferences.APPLICATION_TAG) } This is a part of my Activity class, where I inject some […]

UNRESOLVED_REFERENCE未解决的参考:isInitialized

我试图使用Kotlin的检查lateinit属性状态的新function,但得到了这个编译时错误Unresolved reference: isInitialized 我已经用kotlin_version kotlin_version = ‘1.2.0-beta-31’ (android studio版本为3.0)的kotlin版本来配置我的build.gradle文件,并且还用相同的版本更新了kotlin插件。 这是我的代码片断,我正在使用isInitialized检查。 还包括一个反映库 compile group: ‘org.jetbrains.kotlin’, name: ‘kotlin-reflect’, version: ‘1.2.0-beta-31’ 。 lateinit var k: SomeObjectType fun instance(): SomeObjectType { if (::k.isInitialized) { k = SomeObjectType() } return k }

智能投到BootsrapButton是不可能的,因为endtrip是这个时候改变了的可变属性

我是Kotlin新手。 我有一个android项目,我选择转换为kotlin。 这是我的一段代码。 import com.beardedhen.androidbootstrap.BootstrapButton class EndTrip : AppCompatActivity(){ internal var endtrip: BootstrapButton ?= null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_end_trip) endtrip.setOnClickListener(View.OnClickListener { //Some code here } } } 但是,我得到这个错误的结束 智能投到BootsrapButton是不可能的,因为endtrip是这个时候改变了的可变属性 一个类似的问题已经在这里回答,但我不能找出解决方案。 我正在使用大胆的Android Bootstrap库 。 谢谢。

在Android应用中,Firebase登录失败

我的应用程序显示在登录失败firebase上的错误..在日志中说 – com,google.firebase.auth没有find。 该怎么办 ? 我已启用电子邮件/密码登录在Firebase控制台这里是我的代码。 public override fun onStart(){super.onStart() // Check auth on Activity start if (mAuth!!.currentUser != null) { onAuthSuccess(mAuth!!.currentUser) } } private fun signIn() { Log.d(TAG, “signIn”) if (!validateForm()) { return } showProgressDialog() val email = mEmailField!!.text.toString() val password = mPasswordField!!.text.toString() mAuth!!.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> Log.d(TAG, “signIn:onComplete:” + task.isSuccessful) hideProgressDialog() […]

如何为kotlin中的函数参数设置不为null

我在Kotlin创建了一个函数。 它validation电子邮件和密码字段。 我想申请电子邮件和密码不应该为空。 @NotNull有点注释在这里。 有没有人知道如何在Kotlin做到这一点? 所以调用者不能发送空值。 private fun isEmailAndPasswordValid(email: String, password: String): Boolean { if (email.isEmpty()) return false if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) return false if (password.isEmpty()) return false return true }

Firestore与Firebase的离线问题

我将其中一个应用程序转换为新的Firestore。 我正在做一些事情,像点击一个按钮保存文档,然后在onSuccess监听器,去一个不同的活动。 我还使用Firestore保存操作返回任务的事实,使用Tasks.whenAll将任务组合在一起: val allTasks = Tasks.whenAll( createSupporter(supporter),, setStreetLookup(makeStreetKey(supporter.street_name)), updateCircleChartForUser(statusChange, createMode = true), updateStatusCountForUser(statusChange)) allTasks.addOnSuccessListener(this@SignUpActivity, successListener) allTasks.addOnFailureListener(this@SignUpActivity, onFailureListener) 最后,我从成功的保存中获取文档ID,并将其存储在首选项或本地数据库中供以后使用(在onSuccessListener ) 这一切都很好。 直到网络连接中断 。 然后,一切都崩溃了,因为任务永远不会完成,onSuccess / onFailure / onComplete监听器永远不会被调用。 所以应用程序只是挂起。 我正在通过在每次保存之前检查网络可用性来解决此问题,然后通过创建没有任何侦听器的任务来解决此问题。 我也使用UUID生成器在本地生成文档ID。 顺便说一句,这不是应用程序与旧的firebase的工作方式。 在这种情况下,离线时,一切都运行良好,每当应用程序上线时,我都会看到文件同步。 我的Firestore的解决方法似乎是一个可怕的黑客攻击。 有没有人想出更好的解决方案? 有关插入/删除文档回调的相关Firestore数据库在没有连接时不会被调用 addOnCompleteListener不会与云端firestore脱机调用

Kotlin中的Room Persistence lib实现

我在kotlin中为我的数据库实现实现了Room persistence lib。 以下是我的Entity , Dao和Database类: Food.kt @Entity class Food(@ColumnInfo(name = “food_name”) var foodName: String, @ColumnInfo(name = “food_desc”) var foodDesc: String, @ColumnInfo(name = “protein”) var protein: Double, @ColumnInfo(name = “carbs”) var carbs: Double, @ColumnInfo(name = “fat”) var fat: Double) { @ColumnInfo(name = “id”) @PrimaryKey(autoGenerate = true) var id: Long = 0 @ColumnInfo(name = “calories”) var […]

移除Firebase侦听器不适用于Android

我将一个事件值侦听器添加到引用,当我想删除它,但它不起作用。 override fun onStart() { super.onStart() stateListener =dbReference.stateRef.addValueEventListener(object : ValueEventListener { override fun onCancelled(p0: DatabaseError?) { TODO(“not implemented”) //To change body of created functions use File | Settings | File Templates. } override fun onDataChange(snapshot: DataSnapshot?) { //there is my functions }) } override fun onStop() { super.onStop() dbReference.stateRef.removeEventListener(stateListener) Log.d(“My_TAG”, “$stateListener “) } 这是我添加活动的唯一地方。 编辑后(仍然不工作) […]

为什么这个Kotlin代码仍然需要? 访问成员?

我在Kotlin类中有以下function: private fun raiseResponse(ex: Exception, resObj: JSONObject) { if (_activity == null || _responseHandler == null) return _activity.runOnUiThread { _responseHandler.invoke(ex, resObj) } } 在哪里_activity和_responseHandler被定义为: var _activity: Activity? = null var _responseHandler: ((Exception, JSONObject) -> Unit)? = null 但是,调用runOnUiThread的行只会在我使用?.编译?. 而不是. 。 我试过谷歌搜索,但恐怕我的术语是缺乏的。 我认为我的空检查的第一行raiseResponse足以确保?. 是不必要的?

com.android.builder.dexing.DexArchiveMergerException:无法在运行时合并dexexception

错误:任务’:app:transformDexArchiveWithExternalLibsDexMergerForDevDebug’的执行失败。 java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex 的build.gradle apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-kapt’ android { compileSdkVersion 27 buildToolsVersion project.buildToolVersion dataBinding { enabled = true } productFlavors { dev { applicationIdSuffix “.dev” buildConfigField ‘String’, ‘HOST’, ‘”https://raconfiguratorqa.symx.com”‘ resValue ‘string’, ‘google_maps_key’, “AIzaSyDqXirXTahZHrKeSW62kmY3236S1Cqu4c4” } production { buildConfigField ‘String’, ‘HOST’, ‘”https://raconfiguratorqa.symx.com”‘ resValue ‘string’, ‘google_maps_key’, “AIzaSyDqXirXTahZHrKeSW62kmY3236S1Cqu4c4” } } signingConfigs { config { […]

Kotlin language will be the best programming language for Android.