无法访问“ TAG”:在“ AppCompatActivity”中不可见(超类型中的私有)

时间:2018-12-26 11:41:49

标签: android-activity

我是android编程的初学者。我目前正在使用Android Studio 3.2.1。 我试图监视日志中android活动的不同状态。我已经编写了如下所示的代码,但是我一直收到错误消息:

  

无法访问“ TAG”:在“ AppCompatActivity”中它是不可见的(父类型中为私有)。

即使经过搜索,我也无法弄清错误。可以帮忙吗? 代码:


package com.cooperation.bestech.test1

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log;

class MainActivity : AppCompatActivity() {
     private static final String TAG = "MyMessage";

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.i(TAG, "onCreate");
    }

    override fun onStart() {
        super.onStart()
        Log.i(TAG, "onStart");
    }

    override fun onPause() {
        super.onPause()
        Log.i(TAG, "onPause");
    }

    override fun onResume() {
        super.onResume()
        Log.i(TAG, "onResume");
    }

    override fun onStop() {
        super.onStop()
        Log.i(TAG, "onStop");
    }

    override fun onRestart() {
        super.onRestart()
        Log.i(TAG, "onRestart");
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.i(TAG, "onDestroy");
    }

    override fun onSaveInstanceState(outState: Bundle?) {
        super.onSaveInstanceState(outState)
        Log.i(TAG, "onSaveInstanceState");
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
        super.onRestoreInstanceState(savedInstanceState)
        Log.i(TAG, "onRestoreInstanceState");
    }
}

3 个答案:

答案 0 :(得分:0)

您似乎正在使用Kotlin。因此,您需要以kotlin方式定义TAG:

In Kotlin constants located in the companion object:
class MyClass {
    companion object {
        private val TAG = "ClassName"
    }
}

答案 1 :(得分:0)

由于原始问题是用Kotlin编写的(摘自注释),因此忽略“启动Java项目而不是默认Kotlin”的请求可能是一个更好的解决方案。

然后,使用正确的方式声明和分配变量,您的代码段应如下所示:

class MainActivity : AppCompatActivity() {
    val TAG = "MyMessage"

答案 2 :(得分:0)

import android.content.ContentValues.TAG