Tag: android

IllegalArgumentException对unlockCanvasAndPost

我有以下Kotlin代码在canvas上绘制: override fun run() { while(!isPaused) { if(!holder.surface.isValid){ Thread.sleep(10) continue } val canvas = holder.lockCanvas() if(canvas == null) { Thread.sleep(10) continue } if(!stateManager.isStarted){ stateManager.handler = handler stateManager.start(2000) } drawAdultBackground(canvas) drawChildBackground(canvas) holder.unlockCanvasAndPost(canvas) } } 但是我有时在unlockCanvasAndPost上得到一个IllegalArgumentException。 什么可以导致这个? 据我所知,这个错误最常见的原因是canvas没有锁定,但有没有办法与这个代码,它不能被锁定?

如何区分绑定的可调用成员引用和kotlin中相同types的函数?

当涉及方法签名或定义时,是否有任何区分的方法 users().indexOn(User::id) 和 users().indexOn { it.id() } ? 也就是说,要指定绑定成员引用是必需的,而不是函数实例,反之亦然。 以上是上面例子的签名: fun indexOn(function: (T) -> U): List 在同样的说明,是否有可能区分构造函数引用和返回一个types的函数? 例如, query(::SomeLookup)与query { SomeLookup(args) } (如果可能,不包含kotlin.reflect)

Android Studio 3.1 Canary 4 Genymotion模拟器插件失败

我正在使用Android Studio 3.1 Canary 4和Kotlin支持 。 由于默认的Android AVD太慢,我更喜欢Genymotion 。 尽管安装了必要的插件,Android Studio中没有Genymotion Emulator的选项。它不支持Beta吗? 还是我错过了什么? 插入 装Genymotion PS :[安装的虚拟盒,Genymotion,Android Studio]和Genymotion中的选定SDK。 还配置了虚拟框。 每做完一个步骤后重新启动很多次

如何访问CalendarProvider与房间?

使用内容提供程序总是带有几乎不可读的样板,难以发现编程错误。 Android Architecture Components的房间持久性库缓解了这个问题,但它似乎并不适用于Android的内容提供商。 有没有人成功地使用日历提供程序或其他Android的内容提供商与房间,获得更多的可读代码? 如果是的话,请回答并张贴在Kotlin的小片,如果可以;) 谢谢你的帮助!

检测视图碰撞并防止覆盖

当我正在使用Kotlin android框架进行一个益智游戏时,我被困在了一点,当我无法弄清楚如何防止imageViews在移动时互相重叠时,我尝试了很多解决方案,没有任何工作,如果任何人可以告诉我如何防止它们重叠或告诉我如何检测碰撞的正确方法。 这里是我用来检测碰撞的代码: //onCreate getRundomPosition() //this method is used to put the imageView in some random position imageView.getDrawingRect(rc1) imageView2.getDrawingRect(rc2) imageView3.getDrawingRect(rc3) imageView4.getDrawingRect(rc4) imageView5.getDrawingRect(rc5) imageView6.getDrawingRect(rc6) imageView7.getDrawingRect(rc7) //the function I use to check collision it’s called after a swipe event fun checkIntersection(rc:Rect):Boolean{ var b:Boolean if(Rect.intersects(rc,rc1)) b=true else if(Rect.intersects(rc,rc2)) b=true else if(Rect.intersects(rc,rc3)) b=true else if(Rect.intersects(rc,rc4)) b=true else if(Rect.intersects(rc,rc5)) b=true […]

“使用Android aar库回答Native”ClassNotFoundException:kotlin.LazyKt

我使用我自己的Android库在Kotlin上完成。 我将该库构建到* .aar文件中,并在React Native的单独项目中导入。 崩溃出现在Android React Native应用程序中,当我从该库启动Service时,其中一些字段以懒惰方式初始化。 我找不到类似“Lkotlin / LazyKt”或“kotlin.LazyKt”的错误。 也许有人遇到类似的问题? 我会很感激任何提示。 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.project_mobile:sdmp, PID: 18913 java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/LazyKt; at com.project.service.SdmService.(SdmService.kt:27) at java.lang.Class.newInstance(Native Method) at android.app.ActivityThread.handleCreateService(ActivityThread.java:2859) at android.app.ActivityThread.-wrap4(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1427) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.ClassNotFoundException: Didn’t find class […]

统一自动化多个TextViews

在我的活动中,我有三个与autosizing(不使用支持库)textviews: 当我运行这个,我得到以下结果 我怎样才能使日期和日期文本视图具有统一的大小? 我不想设置一个相等的android:autoSizeMaxTextSize属性为了做到这一点。 我已经尝试了以下逻辑(Kotlin) if(view_date.textSize>view_day.textSize) view_date.textSize = view_day.textSize else view_day.textSize=view_date.textSize 但是它不起作用,文本大小不会改变。

第二次启动AsyncTask

我正在建立一个Android应用程序,从一个活动开始的时候开始计算时间,第一次我开始活动一切正常,计时器工作正常,它显示在TextView上的时间。 当我完成活动(翻转手机),并尝试再次启动计时器工作正常(我显示为一个日志),但textview不会改变 override fun doInBackground(vararg params: Activity): String? { val acc = Accelerometer(params[0]) dealsList.forEach {Log.d(“fallDeals”, it) } while (true) { sleep(100) publishProgress() Log.i(“TAG”, “${tiltSensorsValues[0] – acc.xPos!!} ${tiltSensorsValues[1] – acc.yPos!!} ${acc.zPos!!}”) if (flippedPhone(acc)) { Log.i(“REFRENCES”, “${dbRefrences.stateRef}”) dbRefrences.stateRef.setValue(“empty”) addToOldDataTableDatabase() return “Triggered” break } } } private fun flippedPhone(acc: Accelerometer) = (tiltSensorsValues[0] – acc.xPos!! 4 || tiltSensorsValues[1] – […]

在高阶函数中调用具有参数/ s的lambda

我是java / kotlin函数式编程的新手,并做了一些练习。 只是想知道如何在调用lambda时传递参数。 例如,在这里调用someMethod我需要传递一个Int参数。 fun lambdaTest( someMethod: (Int) -> Boolean){ someMethod() } 如何做到这一点? 答案可能非常简单,我只是没有在任何地方find它,在文档中只有列表的例子,如果答案是明确的: fun List.map(transform: (T) -> R): List { val result = arrayListOf() for (item in this) result.add(transform(item)) return result }

EvaluateJavaScript只允许返回types的字符串?

我做了一个通用的函数(在Kotlin中),我可以根据给定的命令调用JavaScript函数。 fun evaluateJsFromNative(command: String, webView: WebView, function: (value : String) -> Unit ) { webView.evaluateJavascript(“(function() { return $command; })();”) { s -> function(s) } } 但是,它只允许将值String作为返回types。 如果我希望它是更通用的东西,我可以返回布尔types,诠释,甚至什么都没有,我怎么能使这更通用? 例如,我不能这样做…它会在function(s)声明需要是String fun evaluateJsFromNative(command: String, webView: WebView, function: (value : Boolean) -> Unit ) { webView.evaluateJavascript(“(function() { return $command; })();”) { s -> function(s) } }