Я хотел бы прочитать различные аппаратные состояния 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)