当前位置: 首页 > 知识库问答 >
问题:

Log.d 问题 in kotlin (Android Studio)

杨良平
2023-03-14

所以我试图用kotlin语言创建flappy bird游戏,但我在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)
        )
    }
}

在日志下。d(标记)行,我得到以下错误:

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 

现在,这是我的游戏线。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)
    
                }
                }
                }
    
            }

我在日志.d(TAG,消息:“线程已启动”)行上收到此错误:

Unexpected tokens (use ';' to separate expressions on the same line)

我不知道如何修复这些,因此任何帮助都将不胜感激!

共有3个答案

牛凌
2023-03-14
 public static final String TAG=" Activity";


  val ImageButton:ImageButton = ImageButton(context)
        ImageButton.setOnClickListener{
            Log.d(TAG,"Hello World")
        }

这将使其工作,你使用的方法是不可用的Android

毕霖
2023-03-14

替换

Log.d(Tag)

Log.d(Tag, " Some log message")

Log.d(TAG, msg: "Thread Started")

Log.d(TAG, "msg: Thread Started")
//Or
Log.d(TAG, msg="Thread Started")
郎吉星
2023-03-14

您应该使用:

Logo. d(TAG, msg="Thread Started")而不是:

<代码>日志。d(标记,消息:“线程已启动”)

 类似资料:
  • Android studio不显示我在代码中写的任何日志。我已经尝试将日志设置为详细和调试。我正在使用‘无过滤器’。为什么'oncreatetestlog'没有出现在我的logcat中?

  • 我正在开发一个Android应用程序,我想有一些方式打印调试语句,因为我的代码运行。对我来说幸运的是,当我在Android 2.3.3(API10)模拟器上运行应用程序时,Logcat能够打印出log.d消息。 然而,当我在物理设备(三星Galaxy S4 Android 4.2.2)上测试相同的应用程序时,除了dalvikvm和AndroidRuntime消息之外,我看不到其他任何东西。 我不确

  • 问题内容: 包括: all Spring libs, Apache Tomcat 7.0 library 在构建路径中 但它仍然给出错误: 在“ org.sprintframework.web-3.1.0.M1.jar”中,我可以看到“ org.springframework.web.context.ContextLoaderListener”。 Google上的某个人说应该包含spring.ja

  • 发布问题 更新问题 设置问题悬赏 获取问题列表 获取一个问题详情 删除一个问题 获取用户发布的问题列表 发布问题 POST /questions 输入 字段 类型 描述 subject 字符串 必须,问题主题或者说标题,不能超过 255 字节 ,必须以 ? 结尾。(不区分全角或者半角) topics 数组 必须,绑定的话题,数组子节点必须符合 { "id": 1 } 的格式。 body 字符串

  • 问题内容: 我使用非常简单的代码返回XML 但是,出现以下错误 请帮忙。谢谢 问题答案: 运行时出现NoSuchMethodError表示你使用的库版本与生成代码所针对的版本不同。 在你的情况下,Spring是元凶。在运行时检查类路径上的内容,并确保以下各项: 版本与编译时间罐相同 如果存在多个版本,请删除不需要的版本