java 抽象类引发的 java.lang.RuntimeException: Unable to instantiate activity

发布时间: 2023-02-14 15:20:33 作者: 大象笔记

从一个蓝牙模块的三方 Android SDK 中复制了一段 demo 代码,没想到运行时直接崩溃,报错:

java.lang.RuntimeException: Unable to instantiate activity

除了这个错误信息,其他没有任何的有用信息,感觉完全定位不到问题。

从网上找到一个类似的情况,作者说,可能是 activity class 被设置成了抽象类。 检查了一下代码,发现确实是这样。。。

public abstract class NodeListActivity extends NodeScanActivity implements NodeRecyclerViewAdapter

于是去掉 abstract 关键字:

Class 'NodeListActivity' must either be declared abstract or implement abstract method 'onNodeSelected(Node)' in 'OnNodeSelectedListener'
Class 'NodeListActivity' must either be declared abstract or implement abstract method 'displayNode(Node)' in 'FilterNode'

按照提示,逐一实现了其中的 abstract 方法。

java 抽象类 abstract class

An abstract class means it's not complete, it's missing parts. Prefixing a class with the keyword abstract means it cannot be instantiated directly, but only through inheritance: and other class implementing the abstract class's missing features.

参考

我是一名山东烟台的开发者,联系作者