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

更新日期: 2023-02-14 阅读次数: 1191 字数: 238 分类: Java

从一个蓝牙模块的三方 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.

参考

  • https://stackoverflow.com/questions/4688277/java-lang-runtimeexception-unable-to-instantiate-activity-componentinfo

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式