带有 Android Studio 的 Movesense 应用程序每次都崩溃

问题描述

我尝试为 Movesense 设备编写应用程序并尝试重建其官方主页上的代码。问题是应用程序崩溃,在我按下 den Scan 按钮后。我希望你能帮助我。我尝试下载不同的匕首版本并搜索原因:

java.lang.IllegalStateException: 无法执行 android:onClick 的方法

引起:java.lang.reflect.InvocationTargetException

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lbleshadow/dagger/internal/Preconditions

引起:java.lang.classNotFoundException:在路径上没有找到类“bleshadow.dagger.internal.Preconditions”

但这并没有真正帮助我,在我忘记之前 - 我是一个初学者。

错误代码

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.medtec,PID: 12232
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414)
        at android.view.View.performClick(View.java:7448)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
        at android.view.View.performClickInternal(View.java:7425)
        at android.view.View.access$3600(View.java:810)
        at android.view.View$PerformClick.run(View.java:28305)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)
        at android.view.View.performClick(View.java:7448) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28305) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lbleshadow/dagger/internal/Preconditions;
        at com.polidea.rxandroidble2.DaggerClientComponent$Builder.applicationContext(DaggerClientComponent.java:412)
        at com.polidea.rxandroidble2.DaggerClientComponent$Builder.applicationContext(DaggerClientComponent.java:399)
        at com.polidea.rxandroidble2.RxBleClient.create(RxBleClient.java:54)
        at com.example.medtec.MainActivity.getBleClient(MainActivity.java:73)
        at com.example.medtec.MainActivity.onScanClicked(MainActivity.java:105)
        at java.lang.reflect.Method.invoke(Native Method) 
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) 
        at android.view.View.performClick(View.java:7448) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28305) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: java.lang.classNotFoundException: Didn't find class "bleshadow.dagger.internal.Preconditions" on path: DexPathList[[zip file "/data/app/~~SfZrrIGMBCbREFrH06uGZA==/com.example.medtec-upuErZzA2C5EqBajJNc57Q==/base.apk"],nativeLibraryDirectories=[/data/app/~~SfZrrIGMBCbREFrH06uGZA==/com.example.medtec-upuErZzA2C5EqBajJNc57Q==/lib/x86,/data/app/~~SfZrrIGMBCbREFrH06uGZA==/com.example.medtec-upuErZzA2C5EqBajJNc57Q==/base.apk!/lib/x86,/system/lib,/system_ext/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.classLoader.loadClass(ClassLoader.java:379)
        at java.lang.classLoader.loadClass(ClassLoader.java:312)
        at com.polidea.rxandroidble2.DaggerClientComponent$Builder.applicationContext(DaggerClientComponent.java:412) 
        at com.polidea.rxandroidble2.DaggerClientComponent$Builder.applicationContext(DaggerClientComponent.java:399) 
        at com.polidea.rxandroidble2.RxBleClient.create(RxBleClient.java:54) 
        at com.example.medtec.MainActivity.getBleClient(MainActivity.java:73) 
        at com.example.medtec.MainActivity.onScanClicked(MainActivity.java:105) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) 
        at android.view.View.performClick(View.java:7448) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28305) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

解决方法

您正在尝试在模拟器而不是实际的 Android 设备中运行应用程序。 MDS 不支持在 x86 硬件上实际运行,仅支持 ARM。

使用 USB 数据线连接手机并确保手机已启用 USB 调试。

完全免责声明:我为 Movesense 团队工作