美文网首页
Android Studio Debug:编码五分钟,调试俩小时

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

作者: _Jun | 来源:发表于2022-09-29 14:46 被阅读0次

前言

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

案例一:抛出明显异常

  • 常见的:除数为0问题
class MainActivty : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

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

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

  • 一般错误
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()
        } 
    }
}    

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

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

案例二:逻辑问题

  • 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()
    }
}    

会掺杂其他方法日志

  • 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()
    }
}    

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

可以直接根据key筛选

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

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

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

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

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

作者:Coward881
链接:https://juejin.cn/post/7114926062982660103

相关文章

网友评论

      本文标题:Android Studio Debug:编码五分钟,调试俩小时

      本文链接:https://www.haomeiwen.com/subject/pzkkartx.html