アプリにアクセスする次のコードがありますPeripheralManagerService
。
PeripheralManagerService service = new PeripheralManagerService();
Gpio ledGpio;
try {
ledGpio = service.openGpio("BCM6");
ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
} catch (IOException e) {
Log.e(TAG, "Error configuring GPIO pins", e);
}
最新のAndroidThings(Developer Preview 7)に更新した後、私のアプリは次をスローしNoClassDefFoundError
ます:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/things/pio/PeripheralManagerService;
...
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.things.pio.PeripheralManagerService" on path: DexPathList[...]
このコードは以前は機能していましたが、更新後になぜこれが発生し始めたのですか?
プレビュー7以降、Android ThingsAPIサービスは新しいインスタンスとして構築されません。代わりにgetInstance()
、Android APIパラダイムにさらに準拠するために、を介してシングルトンとしてアクセスされます。などの一部のクラスPeripheralManagerService
も名前が変更されました。
必ずプレビュー7SDKを使用するようにアプリを更新してください。
dependencies {
compileOnly 'com.google.android.things:androidthings:0.7-devpreview'
}
次に、PeripheralManager
代わりにアクセスするようにコードを変更します。
PeripheralManager manager = PeripheralManager.getInstance();
Gpio ledGpio;
try {
ledGpio = manager.openGpio("BCM6");
ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
} catch (IOException e) {
Log.e(TAG, "Error configuring GPIO pins", e);
}
Android Things APIリファレンスを確認して、呼び出している他のAPIのいずれかが変更されていないかどうかを確認します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加