如何为Kotlin和Android设置Mockito

我想使用Mockito进行unit testing,所以我将Mockito库添加到我的gradle依赖项中。 testImplementation ‘junit:junit:4.12’ testCompile ‘org.mockito:mockito-core:2.12.0’ 但是,我仍然不能使用任何Mockito注释。 /androidTest/ExampleTest.kt @RunWith(MockitoJUnitRunner::class) // Unresolved reference MockitoJUnitRunner @Mock // Unresolved reference Mock 我错过了什么?

非法StateException错误

我最近从Java迁移到Kotlin,并将我的应用程序的代码转换为kotlin代码并发布了更改。但是现在有些用户报告说应用程序正在强制停止。 但是我和被测设备都没有面临这个问题。 当我检查崩溃页面。 它显示了这一点: 这是1018行的DatabaseHelper Class Code fun getNotes(sqlCommand: String): MutableList { val result = ArrayList() val db = this.readableDatabase Log.e(LOG, sqlCommand) val cursor = db.rawQuery(sqlCommand, null) try { if (cursor!!.moveToFirst()) { do { val note = Note() note.id = cursor.getLong(cursor.getColumnIndex(KEY_ID)) note.title = DataEncryption.encryptDecrypt(cursor.getString(cursor.getColumnIndex(KEY_TITLE))) note.content = DataEncryption.encryptDecrypt(cursor.getString(cursor.getColumnIndex(KEY_CONTENT))) note.updatedAt = Date(cursor.getLong(cursor.getColumnIndex(KEY_UPDATED_AT))) note.color = cursor.getInt(cursor.getColumnIndex(KEY_COLOR)) note.favourite = […]

Handler的post在Kotlin里是不行的,怎么了?

有人可以告诉我什么是错的,我尝试使用一个Handler发布一个Runnable但它不是执行 var mHandler: Handler? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mHandler = Handler() var runnable = Runnable { Log.d(“TEST”, “++++ runable”) Log.d(“TEST”, “++++ come end”) } Log.d(“TEST”, “++++ runnable” + runnable) Log.d(“TEST”, “++++ handle” + mHandler) mHandler!!.post { runnable } } 这是输出 09-21 00:56:04.067 4419-4419 /? D / TEST:++++ runnablecom.vpioneer.activity.MainActivity$onCreate$runnable$1@529b8fb4 09-21 00:56:04.067 […]

当几个协程运行时,不要退出Kotlin程序

在我的程序的几个地方,我使用launch来启动一个协同工作,做一些后台任务。 然后,在某个时候,我从main函数返回。 我的程序的简化版本可能如下所示: fun main(args : Array) { launch { delay(10000) // some long running operation println(“finished”) } } 现在,协程按预期启动并开始运行 – 然后程序退出。 如果我不从main返回或用thread替换launch ,一切都按预期工作。 所以我怎么能 ,因为我没有跟踪在我的程序中启动的所有协程(因此我不能使用.join()或.await() ), 确保所有的协程在我的程序退出之前完成?

java.lang.IllegalStateException:TextView不能为null(Android / Kotlin)

我有我的Recycler视图下面的ViewHolder类, inner class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { private val dateText = itemView.itemDateSummaryList private val systolicVal = itemView.systolicValue private val diastolicVal = itemView.diastolicValue fun update(listItem: SummaryListItemModel) { Log.i(TAG, “Update method called ” + listItem.date) dateText.text = listItem.date systolicVal.text = listItem.sysVal.toInt().toString() diastolicVal.text = listItem.diasVal.toInt().toString() } } 但是当我运行该应用程序时出现了一个错误dateText.text = listItem.date说, java.lang.IllegalStateException: dateText must not be null at […]

如何从调用者Kotlin指定的lambda中解除DialogFragment

我从下面的片段运行GirlQualitiesChoiceDialog: girlType.setOnClickListener { GirlQualitiesChoiceDialog.show(activity, InitialDataSet.instance.QUALITY_TYPE_COLOR){ Picasso.with(context).load(it.resId).into(colorTypeImage as ImageView) //GirlQualitiesChoiceDialog.this.dismiss() – need to dismiss the created dialog } } 在哪里指定侦听器。 我需要的是在我加载图片后关闭对话框。 GirlQualitiesChoiceDialog.this.dismiss()不起作用。 请问有谁能告诉我,我怎么能解雇GirlQualitiesChoiceDialog在这里? 假设我需要将对话回调以某种方式传递给lambda,但无法实现。 下面是我的对话框的代码: class GirlQualitiesChoiceDialog : DialogFragment() { companion object { val ARG_QUALITY_TYPE = “ARG_QUALITY_TYPE” private lateinit var itemClickInterface: (Quality) -> Unit fun show(activity: Activity, qualityType: Int, itemClick: (Quality) -> Unit) { itemClickInterface = […]

无法在Kotlin中创建Spring Data Event Listener

我试着创建一个这样的事件监听器: @Bean open fun beforeSaveEventApplicationListener(): ApplicationListener { return ApplicationListener() { fun onApplicationEvent(event: BeforeSaveEvent) { //Do something with event } } } 。 。 。 但它不会编译。 如果指定了genericstypes,那么编译器将返回: Type argument expected 我究竟做错了什么?

如何在init块kotlin中得到exception

下面的代码,在init函数中我创建一个Person对象,并有一个exception,现在我想停止像java返回catch的进度。 我该怎么做? class Person { val age: String = “10” private lateinit var person: Person init { try { person = get(2) } catch (exception: Throwable) { } println(“—————-do it $person.age”) } fun get(i: Int): Person { when (i) { 1 -> { return Person() } else -> { throw MyException(“aaaaaaaaa”) } } } }

OpenCV:在Android上,将Kotlin中的Mat与Scalar相乘

我正在使用Camera API 2编写Android应用程序。它以不同的曝光值在连拍模式下拍摄3张照片,并将它们与OpenCV(3.0.0)合并。 合并我的意思是Mertens算法,这是在照片模块中可用。 为了将结果保存为设备上的图像,我需要将其与标量相乘。 如果我不这样做,那么最终的图像是黑色的。 fun multiply(src: Mat): Mat { val scalar = Scalar(255.0,255.0,255.0) val dest = Mat() Core.multiply(src, scalar, dest) return dest } 源图像(src)是320×240 CV_32FC3。 但乘法失败: android-pack/opencv/modules/core/src/arithm.cpp:1987: error: (-209) The operation is neither ‘array op array’ (where arrays have the same size and the same number of channels), nor ‘array op scalar’, nor […]

函数在kotlin返回值结束之前Fuel.post

我有一个Fuel.post函数,返回Fuel.post结束前的值,这是代码… var res = rs.requestLogin(“user”, “password”) 和我的function fun requestLogin(user : String, pass : String) : String { var res = “” val _params = HashMap() _params.put(“user”, user) _params.put(“pass”, pass) Fuel.post(Constantes.ENDPOINT_LOGIN, _params.toList()) .responseString(Charset.forName(“UTF8”)){ request, response, result -> when (result) { is Result.Success -> { res = “0” } is Result.Failure ->{ res = “-1” } } […]