Skip to content

DJI SDK 5 Helper.install() Failure on Android 15 (ARM64) #671

@laukkonen

Description

@laukkonen

DJI SDK 5 Helper.install() Failure on Android 15 (ARM64)

Summary

Helper.install() from DJI Mobile SDK 5 (packages com.dji:dji-sdk-v5-*) fails on Android 15 ARM64 devices/emulators. The helper never completes, leading to No implementation found for void com.cySdkyc.clx.Helper.i() and a subsequent java.lang.VerifyError when SDKManager initializes.

Environment

  • SDK versions tested: 5.13.0 (known working baseline), 5.17.0
  • Target: Android 15 emulator (Lenku_ARM_API_34, arm64-v8a) and physical Samsung Galaxy S23U (Android 15)
  • Sample app: Mobile-SDK-Android-V5/SampleCode-V5/android-sdk-v5-sample (unchanged)
  • Custom project: /Users/antti/Projects/drone-service-app

Reproduction Steps

  1. Clone https://github.com/dji-sdk/Mobile-SDK-Android-V5 and open SampleCode-V5/android-sdk-v5-as/.
  2. Build with ./gradlew :sample:assembleDebug.
  3. Install sample/build/outputs/apk/debug/sample-debug.apk on an Android 15 arm64 emulator or device.
  4. Launch dji.sampleV5.aircraft/.DJIAircraftMainActivity.
  5. Observe logcat: adb logcat -d -v time | grep -E "Helper|SDKManager|AndroidRuntime".

Expected Result

  • Helper.install() succeeds inside Application.attachBaseContext.
  • SDKManager initializes and registers (Registration Status: Registered in the sample UI).

Actual Result

  • Helper.install() throws:
    E/com.dji.sampleV5.aircraft: No implementation found for void com.cySdkyc.clx.Helper.i()
    
  • Immediately followed by:
    E/AndroidRuntime: java.lang.VerifyError: dji.v5.manager.SDKManager.<init>() failed to verify: constructor returning without calling superclass constructor
    
  • DJI sample app swallows the crash but never registers (UI stays “Unregistered / Product Name: UNKNOWN”).
  • Our app initially crashed; we now degrade gracefully by catching the exception, but DJI functionality remains unusable.

Additional Observations

  • Issue reproduces identically on 5.13.0 and 5.17.0 Maven artifacts, implying a packaging/ABI regression rather than project misconfiguration.
  • libSdkyclx_clx.so is present in the APK; the missing JNI symbol (Helper.i) suggests the helper library is not built for Android 15’s 16 KB page size or ARM64 requirements.
  • android:extractNativeLibs="true", jniLibs.useLegacyPackaging = true, multidex, and ProGuard exemptions have no effect—the failure happens before app logic runs.
  • DJI documentation still instructs calling Helper.install(this) in attachBaseContext; there is no mention of Android 15 limitations or alternative initialization paths.

Impact

  • DJI SDK 5 cannot be initialized on Android 15 arm64 devices, blocking telemetry, flight control, and all DJI-dependent features.
  • Apps must either crash or disable DJI functionality entirely, preventing distribution to Android 15 users.

Requested Action

  1. Confirm whether Android 15 arm64 is officially supported for SDK 5.13–5.17.
  2. Provide updated helper binaries (or guidance) that allow Helper.install() to succeed on Android 15 ARM64.
  3. Document any required manifest/Gradle changes if the initialization process has changed for Android 15.

References

  • DJI SDK repo: https://github.com/dji-sdk/Mobile-SDK-Android-V5
  • Internal app path: /Users/antti/Projects/drone-service-app
  • Emulator command used:
    cd /Users/antti/Projects/drone-service-app \
      && export ANDROID_HOME="${HOME}/Library/Android/sdk" \
      && emulator -avd Lenku_ARM_API_34 -no-snapshot-load

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions