Android Studio配置

本文记录一下在配置Android Studio中一些tips:

通过配置环境变量将SDK和Emulator放在D盘

  • 配置ANDROID_SDK_ROOT环境变量,对应目录下存放安装的SDK

    image-20220730191707531

    image-20220730191849901

  • 配置ANDROID_SDK_HOME环境变量,对应目录下的.android\avd目录中存放安装的安卓模拟器。

    image-20220730191737331

    image-20220730191916435

    注意将原本C盘中的.android文件夹复制到该目录处时,需要更改avd下面对应模拟器的.ini文件中的路径:

image-20220730190220294

参考资料:

  1. 环境变量
  2. Android Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空间不够问题)

在Android Studio项目中导入已有安卓模拟器

直接导入对应avd目录下的.ini文件即可。

Android Studio各种报错

1.出现报错:This view is not constrained vertically: at runtime it will jump to the top unless you add a vertical constraint。出现场景如下:

image-20220730190618272

此时可以通过点击右上方的魔法工具完整自动补全解决报错:

image-20220730190838880

补全后代码如下:

1
2
3
4
5
6
7
8
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Button 1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

参考资料:

  1. This view is not constrained vertically. At runtime it will jump to the left unless you add a vertical constraint

Android Studio配置国内镜像

Android Studio中用ViewBinding替代kotlin-android-extension插件

在Activity中使用视图绑定的流程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
class FirstActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var binding = FirstLayoutBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
// val button1: Button = findViewById(R.id.button1)
// Toast.makeText要求传入三个参数,第一个参数为一个Context对象,Activity本身就是一个Context对象,因此传入this即可;第二个参数为显示的文本;第三个参数为显示时长
binding.button1.setOnClickListener{
Toast.makeText(this, "You clicked Button 1", Toast.LENGTH_LONG).show()
}
}
}

其与以下代码功能等价,但在页面中控件较多时更为高效:

1
2
3
4
5
6
7
8
9
10
11
class FirstActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.first_layout)
val button1: Button = findViewById(R.id.button1)
// Toast.makeText要求传入三个参数,第一个参数为一个Context对象,Activity本身就是一个Context对象,因此传入this即可;第二个参数为显示的文本;第三个参数为显示时长
button1.setOnClickListener{
Toast.makeText(this, "You clicked Button 1", Toast.LENGTH_LONG).show()
}
}
}

参考资料:

  1. kotlin-android-extensions插件也被废弃了?扶我起来
  2. 视图绑定 官方文档

Android Studio返回上一次光标所在位置

  • 快捷键:Ctrl+Alt+向左箭头

    image-20220804163700574

  • 双击shift全局搜索,然后搜索show Main ToolBar配置,置为ON

    image-20220804163756703

    可以看到顶栏工具栏已经打开:

    image-20220804163915966

Android Studio报override nothing错误

image-20220805212313748

其原因在于没有继承包含该方法的类。在本例中,需要在下述代码:

1
class MainActivity : AppCompatActivity()

后加上需要继承的类:

1
class MainActivity : AppCompatActivity(), View.OnClickListener 

tip:在IDE报错的时候,不要先怀疑它在缓存等方面出了问题,先怀疑自己 😃