【问题标题】:PeripherialManager.getInstance() throws java.lang.RuntimeException: StubPeripherialManager.getInstance() 抛出 java.lang.RuntimeException: Stub
【发布时间】:2019-10-08 08:42:31
【问题描述】:

我正在尝试使用 com.google.android.things:androidthings 进行 UART 通信。我得到的问题是PeripheralManager.getInstance() 抛出java.lang.RuntimeException: Stub!

我正在使用带有 Android SDK 25 的 Rockchip RK3368 设备。

我按照 Android 文档中的指南进行操作:https://developer.android.com/things/sdk/pio/uart

PeripheralManager manager = PeripheralManager.getInstance();

堆栈跟踪如下:

W/System.err: java.lang.RuntimeException: Stub!
        at com.google.android.things.pio.PeripheralManager.getInstance(PeripheralManager.java:21)
        at com.eurotronik.library.common.serial.SerialClass.<init>(SerialClass.java:38)
        at com.eurotronik.nursetabmode.serialport.SerialPortService.onCreate(SerialPortService.java:112)
        at android.app.ActivityThread.handleCreateService(ActivityThread.java:3192)
        at android.app.ActivityThread.-wrap5(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1568)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6121)
        at java.lang.reflect.Method.invoke(Native Method)

什么是存根!意思是,我该如何解决这个问题?

【问题讨论】:

标签: java android iot uart


【解决方案1】:

存根是一个空函数。这些通常是要在库的未来版本中填写的占位符。

在您的情况下,由于您的目标是 Android SDK 25,因此您可能没有最新版本的库,其中存根将用真实代码填充。

来自“创建 Android Things 项目”的 Android 文档:

在开始为 Things 构建应用之前,您必须:

  • 将您的 SDK 工具更新到 25.0.3 或更高版本 更新后的 SDK 工具使您能够为 Things 构建和测试应用程序。

  • 使用 Android 8.1 (Oreo)、API 27 或更高版本更新您的 SDK 更新的平台版本为 Things 应用提供了新的 API。

FWIW,我在使用不同的“事物”类 BluetoothConnectionManager 时遇到了同样的问题。不幸的是,我的 Android 版本不允许我更新到必要的 API 级别。

希望你好运。

【讨论】:

    猜你喜欢
    • 2017-05-24
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多