【发布时间】: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 -> clean -> rebuild之后我得到了一些结果。现在我不在调试模式下启动项目。我启动然后将进程附加到调试,现在调试在setText方法中的preparePipValues(values)方法中停止。这是非常奇怪的行为。在 Java 上我从来没有遇到过这个问题。
标签: android debugging android-custom-view