美文网首页
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