注册

Android Studio Debug:编码五分钟,调试俩小时

前言


整理并积累Android开发过程中用到的一些调试技巧,通过技巧性的调试技能,辅助增强代码的健壮性、安全性、正确性


案例一:抛出明显异常



  • 常见的:除数为0问题

class MainActivty : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button.setOnClickListener {
val i = 1/0
}
}
}

image.png



会提示错误原因,并告知在哪一行




  • 一般错误

class MainActivty : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button.setOnClickListener {
val s = "Candy" //假设此处是在一个方法内,我们无法看到
var i = 0
i = s.toInt()
}
}
}

image.png



会提示错误原因,并告知在哪一行


错误原因可能不认识,直接找错误关键字,检索百度



案例二:逻辑问题



  • println()方式调试

class MainActivty : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button.setOnClickListener {
var res = 0
for (i in 1 until 10){
res=+i //该处将逻辑故意写错 应为 +=
println("i=${i},res=${res}")
}
val s:String = StringTo(res)
Toast.makeText(this,s,Toat.LENGTH.SHORT).show()
}
}
private fun StringTo(res:String){
println("将Int转换成String")
resturn res.roString()
}
}

image.png



会掺杂其他方法日志




  • log方式调试

class MainActivty : AppCompatActivity(){
val TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button.setOnClickListener {
var res = 0
for (i in 1 until 10){
res=+i //该处将逻辑故意写错 应为 +=
Log.d(TAG,"i=${i},res=${res}")
}
val s:String = StringTo(res)
Toast.makeText(this,s,Toat.LENGTH.SHORT).show()
}
}
private fun StringTo(res:String){
println("将Int转换成String")
resturn res.roString()
}
}

image.png



筛选条件多:Debug、Info、Worn、Error以及自定义筛选等


可以直接根据key筛选


调试数据较多时,不方便查看,不够灵活




  • debug模式调试

image.png



  • resume progrem: 继续执行
  • step over: 跳入下一行
  • step into: 进入自定义方法,非方法则下一行
  • force step into:进入所有方法,非方法则下一行
  • step out: 跳出方法,且方法执行完成
  • run to cursor: 跳入逻辑的下一个标记点
    image.png


debug运行时,会出现提示框,无需操作



案例三:代码丢失||项目问题



  • history

    • 不小心删除代码/文件且已save并退出
      右击项目 -> Local History -> Show History -> 选择某一历史右键 -> Revert



image.png


image.png


image.png


image.png


image.png


作者:Coward881
链接:https://juejin.cn/post/7114926062982660103
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册