【发布时间】:2021-02-19 18:54:20
【问题描述】:
所以我尝试使用 kotlin 语言创建飞扬的小鸟游戏,但我遇到了 log.d 命令的问题。这是我的 MainActivity.kt 代码:
package com.example.flappybird
import android.os.Bundle
import android.util.Log
import android.widget.ImageButton
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private val Tag = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val ImageButton: ImageButton = findViewById(R.id.btnPlay)
ImageButton.setOnClickListener(
Log.d(Tag)
)
}
}
在 Log.d(Tag) 行下,我收到此错误:
None of the following functions can be called with the arguments supplied.
d(String?, String) defined in android.util.Log
d(String?, String?, Throwable?) defined in android.util.Log
现在,这是我的 PlayThread.kt 代码,它是一个类:
package Thread
import Model.BackgroundImage
import android.content.res.Resources
import android.graphics.Canvas
import android.util.Log
import android.view.SurfaceHolder
class PlayThread : Thread {
private val TAG : String = "PlayThread"
private var holder : SurfaceHolder
private var resources : Resources
private var isRunning : Boolean = false //flag run or stop
private val FPS : Int = (1000.0/60.0).toInt() //time per frame for 60 fps
private val backgroundImage = BackgroundImage() //object model
private var startTime : Long = 0
private var frameTime : Long = 0
constructor(holder: SurfaceHolder, resources: Resources) {
this.holder = holder
this.resources = resources
isRunning = true
}
override fun run() {
Log.d(TAG, msg: "Thread Started")
while(isRunning) {
if (holder == null) return
startTime = System.nanoTime()
val canvas = holder.lockCanvas()
if (!canvas) {
try{
synchronized(holder) {
render(canvas)
}
}
finally {
holder.unlockCanvasAndPost(canvas)
}
}
}
}
我在 Log.d(TAG, msg: "Thread Started") 行收到此错误:
Unexpected tokens (use ';' to separate expressions on the same line)
我不知道如何解决这些问题,所以任何帮助将不胜感激!
【问题讨论】:
-
Log.d(TAG, "msg: Thread Started") -
没有任何版本的
d函数只接受tag。您还必须有一条消息。如果要给参数打标签,正确的语法是msg =而不是msg:
标签: android android-studio kotlin