【问题标题】:UnsatisfiedLinkError: No implementation found for byte[] dji.midware.natives.SDKRelativeJNI.native_getXXX (...)UnsatisfiedLinkError: No implementation found for byte[] dji.midware.natives.SDKRelativeJNI.native_getXXX (...)
【发布时间】:2019-02-07 15:45:13
【问题描述】:

说明: 将 android sdk 更新到版本 28 并将 DJI sdk 从版本 4.6 更新到 4.9 后,在任何模拟器上运行的应用程序都会出现问题。在 DJI sdk 注册过程中应用崩溃。

  • 大疆 SDK: 4.9
  • Android sdk(compileSdkVersion): 28
  • Android系统版本:每个
  • Android 设备: 模拟器

崩溃堆栈跟踪:

java.lang.UnsatisfiedLinkError: No implementation found for byte[] dji.midware.natives.SDKRelativeJNI.native_getXXXX(java.lang.String) (tried Java_dji_midware_natives_SDKRelativeJNI_native_1getXXXX and Java_dji_midware_natives_SDKRelativeJNI_native_1getXXXX__Ljava_lang_String_2)
at dji.midware.natives.SDKRelativeJNI.native_getXXXX(Native Method)
at com.dji.h.a.a.c.b(Unknown Source)
at dji.midware.e.b(Unknown Source)
at dji.sdk.sdkmanager.DJISDKManager.(Unknown Source)
at dji.sdk.sdkmanager.DJISDKManager.getInstance(Unknown Source)
at PACKAGE_NAME.dji.DJIProvider$registerTask$1.run(DJIProvider.kt:39)
at PACKAGE_NAME.dji.DJIProvider.startSDKRegistration(DJIProvider.kt:127)
at PACKAGE_NAME.MainActivity$registerDJISDK$1.onExecutorReady(MainActivity.kt:595)
at PACKAGE_NAME..helpers.ui.SimpleDelayedExecutor$executeDelayed$1.run(DelayedExecutor.kt:20)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

【问题讨论】:

    标签: android dji-sdk unsatisfiedlinkerror


    【解决方案1】:

    DJI 需要在这个问题上齐心协力:

    1) 在 Android Studio 中,当您创建一个新的虚拟设备时,当您选择一个系统映像时,转到其他映像选项卡。从那里选择任何“手臂”图像并使用它。使用此选项,模拟器会非常慢,如果您的计算机太旧或太慢,则可能根本无法运行。

    2) 将真正的 Android 设备连接到启用调试模式的计算机并在其上运行演示。

    3) 在您的 build.gradle 文件中,将 compileSdkVersion 和 targetSdkVersion 设置为 22,这是 DJI 提供的 libffmpeg.so 文件将加载的最新版本。这是最糟糕的选择,因为 Google 不再允许任何人发布 SDK 版本这么低的应用程序。现在版本必须是26或以上:https://support.google.com/googleplay/android-developer/answer/113469#targetsdk

    4) 回滚到 4.6 :P

    【讨论】:

      猜你喜欢
      • 2016-02-19
      • 1970-01-01
      • 2016-05-07
      • 2019-01-13
      • 1970-01-01
      • 2021-10-28
      • 2020-07-04
      • 2021-10-21
      相关资源
      最近更新 更多