java.lang.NoClassDefFoundError: Ошибка разрешения: Ldji / common / flightcontroller / CompassCalibrationState - PullRequest
1 голос
/ 08 апреля 2019

Я хотел бы прочитать различные аппаратные состояния DJI, используя DJI Android SDK. Но для некоторых архитектур (Intel) некоторые классы DJI не могут быть решены с помощью библиотек. Это приводит к java.lang.NoClassDefFoundError

Затрагиваемые устройства : серия Lenovo Yoga, серия Asus ZenFone.

На всех других устройствах (которые используют разные нативные библиотеки) он работает без проблем. Разве DJI не включил эти классы в библиотеки архитектуры Intel должным образом?

Мы объявляем зависимости в приложении build.gradle следующим образом:

dependencies {   
    implementation('com.dji:dji-uxsdk:4.9')
    compileOnly('com.dji:dji-sdk-provided:4.9')
}

Мы ожидаем правильного разрешения этих классов, но получим следующие ошибки:

java.lang.NoClassDefFoundError: Failed resolution of: Ldji/common/flightcontroller/CompassCalibrationState

java.lang.NoClassDefFoundError: Failed resolution of: Ldji/common/flightcontroller/imu/SensorState;

StackTrace:

Caused by java.lang.ClassNotFoundException: Didn't find class "dji.common.flightcontroller.CompassCalibrationState" on path: DexPathList[[zip file "/data/app/com.droneharmony.planner-1/base.apk"],nativeLibraryDirectories=[/data/app/com.droneharmony.planner-1/lib/arm, /data/app/com.droneharmony.planner-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
...