【问题标题】:Cannot debug a CustomView in Android Studio无法在 Android Studio 中调试 CustomView
【发布时间】:2019-10-30 07:58:22
【问题描述】:

我无法调试自定义视图。显示“行中找不到可执行代码”消息。同样在 MainActivity 上,调试工作正常并在 setText 方法上停止,但在我的自定义视图中不是。调试无法进入我的自定义视图方法。而其他方法并没有停止,比如onDraw。 我该如何解决?

我已尝试清理、重建和重新启动项目。即时运行被禁用。 Android Studio 3.4.1 版本。

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

        debug {
            debuggable true
            minifyEnabled false
        }
    }

class MainActivity : AppCompatActivity() {

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

        val pipsTextView = findViewById<PipsTextView>(R.id.pips_text_view)
        pipsTextView.setText("1123.23444", 5, 2, 3, -1)
    }
}

override fun setText(value: String, pipSize: Int, prePipSize: Int, floatingPipSize: Int, direction: Int) {
        this.pipSize = pipSize
        this.prePipSize = prePipSize
        this.floatingPipSize = floatingPipSize
        this.direction = if (direction < 0) DOWN else if (direction == 0) NEUTRAL else UP
        preparePipValues(value)
        invalidate()
    }

我希望调试能够工作。

【问题讨论】:

  • 你在setText 中设置了一个断点,它就停在那里?因此,如果它没有在您的自定义视图方法中停止,则意味着它没有被调用
  • 不调用setText。我无法正确修复它,但在第三次clean and invalidate and restart -&gt; clean -&gt; rebuild 之后我得到了一些结果。现在我不在调试模式下启动项目。我启动然后将进程附加到调试,现在调试在setText 方法中的preparePipValues(values) 方法中停止。这是非常奇怪的行为。在 Java 上我从来没有遇到过这个问题。

标签: android debugging android-custom-view


【解决方案1】:

基于this问题,以下步骤可能对您有所帮助:

  1. 如果您使用 Maven 依赖项,请转到 Maven 项目 -> 刷新
  2. 如果这不起作用,请尝试顶部菜单 --> 构建 --> 重建项目
  3. 如果还是不行,试试顶部菜单 --> 文件 --> 使缓存无效/重启
  4. 如果仍然不起作用,则 $CATALINA_BASE/bin/catalina.sh 停止,然后启动

在此之后,通常它涵盖了 99% 的问题。否则,可能您将不得不检查其他一些可能性。

【讨论】:

    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多