Android-GpsService 未初始化的事物

Android-Things GpsService Not Initilizing

使用 Android Studio 自动生成的 GPS 代码,在 setupGps 期间,NmeaGpsDriver 无法初始化。

Logcat代码:

2019-03-23 18:19:30.590 2054-2054/com.example.gpsmonitor I/InstantRun: starting instant run server: is main process
2019-03-23 18:19:30.602 2054-2054/com.example.gpsmonitor I/ActivityThread: handleStopService: token=android.os.BinderProxy@1bda8fc not found.
2019-03-23 18:19:30.614 2054-2054/com.example.gpsmonitor D/GpsService: GpsService: onCreate
2019-03-23 18:19:30.614 2054-2054/com.example.gpsmonitor D/GpsService: GpsService: setupGps
2019-03-23 18:19:30.669 2054-2054/com.example.gpsmonitor I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.things.contrib.driver.gps.NmeaGpsModule>: java.lang.IncompatibleClassChangeError: Superclass com.google.android.things.pio.UartDeviceCallback of com.google.android.things.contrib.driver.gps.NmeaGpsModule is an interface (declaration of 'com.google.android.things.contrib.driver.gps.NmeaGpsModule' appears in /data/app/com.example.gpsmonitor-TvGQRLdwcqrtDMbhjtBn1Q==/split_lib_dependencies_apk.apk)
2019-03-23 18:19:30.670 2054-2054/com.example.gpsmonitor I/zygote:     at void com.google.android.things.contrib.driver.gps.NmeaGpsDriver.<init>(android.content.Context, java.lang.String, int, float, android.os.Handler) (NmeaGpsDriver.java:67)

几乎完全是 Android Studio for Things with Peripherals 自动生成的代码,并为 Pico-Pi-i.MX7d 设置了 UART6。所以我想知道我错过了什么。

这是因为 Android Studio 模板引入了与您的设备不兼容的旧版 GPS 驱动程序。您很可能只需要将 build.gradle 中的依赖版本更新为 1.0:

dependencies {
    implementation 'com.google.android.things.contrib:driver-gps:1.0'
    compileOnly 'com.google.android.things:androidthings:1.0'
}

如果这给您带来任何问题,您还可以查看 GPS driver sample,它是最新的 1.0 驱动程序。