2

クライアントを取得できません。私は Android の開発を始めているので、設定/初心者の間違いかもしれませんが、試したり検索したりしたことはありません。「RxBleClient.create(context);」を呼び出すたびに、次のエラーが発生します。

FATAL EXCEPTION: Thread-34217
Process: es.ralcaidev.arduinobt, PID: 15488
java.lang.IncompatibleClassChangeError: The method 
'void com.polidea.rxandroidble.internal.radio.RxBleRadioImpl.com_polidea_rxandroidble_internal_radio_RxBleRadioImpl_lambda$new$0()' 
was expected to be of type direct but instead was found to be of type virtual 
(declaration of 'com.polidea.rxandroidble.internal.radio.RxBleRadioImpl' 
appears in /data/app/es.ralcaidev.arduinobt-2/base.apk)
at com.polidea.rxandroidble.internal.radio.RxBleRadioImpl.access$lambda$0(Unknown)
at com.polidea.rxandroidble.internal.radio.RxBleRadioImpl$$Lambda$1.run(Unknown)
at java.lang.Thread.run(Thread.java:818)

JDK 1.8 に切り替え、Jack on gradle を有効にしました。

何か案は?

4

1 に答える 1

2

私はまったく同じ問題を抱えていました。s_noopy が言ったように、https://github.com/Polidea/RxAndroidBle/issues/33が解決してくれました。

問題は、Java 8 ラムダが RxAndroidBle で機能しないことです。互換性のある API バージョンのため、retrolambda を使用する必要があります。これが、間違ったパラメーターが渡されたことを示す不可解なメッセージの理由です。

build.gradle ファイルで、jackOptions クロージャーを削除し (クロージャーの defaultConfig にあると思います)、次のようにします。

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.5'
    }
}

android {

それがあなたのためにそれを解決するかどうか教えてください。

于 2016-08-22T18:20:34.470 に答える