MSDK 5.11 crash on DJI Smart Controller Enterprise
I have been trying to get MSDK 5.11.0 working on a Smart Controller, but have been encountering a crash during startup. Log below. The controller has been updated to the latest firmware (10.01.0801). The same crash occurs with a custom application, with the blank sample application, and with the sample application from GitHub (https://github.com/dji-sdk/Mobile-SDK-Android-V5/tree/dev-sdk-main). The crash does not occur on an RC Plus and the app appears to work normally.
It appears that the issue occurs in xcrash initialisation, specifically when the `NativeHandler.initialize` method calls `nativeInit`. I tried debugging with different versions of the MSDK. It appears to fail in both 5.10 and 5.11 on the Smart Controller Enterprise, but in 5.10 the result is just log message, while 5.11 results in a crash due to the custom logger provided to xcrash
- On 5.10.0, the exception path is not triggered because the logger exists, i.e. it isn't abstract (
NativeHandler.java:146
) - On 5.11.0, the exception is triggered which then hard crashes as the custom logger is found to be an abstract method. (
NativeHandler.java:152
)
Are there any solutions to this issue or is the Smart Controller Enterprise not supported with MSDK 5.11?
10:00:29.060 1726-1726 art com.example.msdksample E No implementation found for void com.cySdkyc.clx.Helper.i() (tried Java_com_cySdkyc_clx_Helper_i and Java_com_cySdkyc_clx_Helper_i__)
10:00:29.204 1726-1759 DjiCoreHelper com.example.msdksample D mask=
10:00:29.209 1726-1759 MyApplication com.example.msdksample I onInitProcess:
10:00:29.254 1726-1726 AppCompatDelegate com.example.msdksample D Checking for metadata for AppLocalesMetadataHolderService : Service not found
10:00:29.278 1726-1726 art com.example.msdksample W Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
10:00:29.387 1726-1763 mali_so com.example.msdksample I [File] : hardware/arm/maliT760/driver/product/base/src/mali_base_kbase.c; [Line] : 976; [Func] : base_context_deal_with_version_affairs_rk_ext;
arm_release_ver of this mali_so is 'r14p0-01rel0', rk_so_ver is '6@0, r1_for_defect_256188'.
10:00:29.387 1726-1763 mali_so com.example.msdksample D [File] : hardware/arm/maliT760/driver/product/base/src/mali_base_kbase.c; [Line] : 981; [Func] : base_context_deal_with_version_affairs_rk_ext;
current process is NOT sf, to bail out.
10:00:29.394 1726-1763 OpenGLRenderer com.example.msdksample I Initialized EGL, version 1.4
10:00:29.394 1726-1763 OpenGLRenderer com.example.msdksample D Swap behavior 1
10:00:29.443 229-236 BufferQueueProducer surfaceflinger E [com.example.msdksample/com.example.msdksample.MainActivity] connect: already connected (cur=1 req=1)
10:00:29.444 1726-1763 mali_winsys com.example.msdksample D EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000
10:00:29.474 1726-1763 GRALLOC-ROCKCHIP com.example.msdksample D enter, w : 1080, h : 1920, format : 0x1, usage : 0xb00.
10:00:29.506 1726-1763 GRALLOC-ROCKCHIP com.example.msdksample D enter, w : 1080, h : 1920, format : 0x1, usage : 0xb00.
10:00:30.938 1726-1759 V5_RUNNING_INFO com.example.msdksample E Crash md5: 265ef09f00dc282494404757fc64ffb2
--------- beginning of crash
10:00:32.283 1726-1759 AndroidRuntime com.example.msdksample E FATAL EXCEPTION: DJIExecutor IO #1
Process: com.example.msdksample, PID: 1726
java.lang.AbstractMethodError: abstract method "void xcrash.ILogger.e(java.lang.String, java.lang.String, java.lang.Throwable)"
at xcrash.NativeHandler.initialize(NativeHandler.java:152)
at xcrash.XCrash.init(XCrash.java:189)
at dji.v5.inner.analytics.crash.CrashReport.init(CrashReport.java:21)
at dji.v5.manager.SDKManager.co_a(SDKManager.java:19)
at dji.v5.manager.SDKManager.lambda$qQ8vfHm0Pi84vcg6DvVpTrMbJgY(SDKManager.java)
at dji.v5.manager.-$$Lambda$SDKManager$qQ8vfHm0Pi84vcg6DvVpTrMbJgY.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
10:00:32.469 229-485 BufferQueueProducer surfaceflinger E [Application Error: com.example.msdksample] connect: already connected (cur=1 req=1)
-
The release notes for 5.11.0 say that the "DJI Smart Controller Enterprise" is supported, and the bug fixes list a fixed bug for the controller:
On Matrice 300 RTK, failed to take a photo after switching from video mode to photo mode on the DJI Smart Controller Enterprise: Fixed
-
Dear developers, Hello, thank you for contacting DJI Innovation. Your problem has been submitted to the R & D department, and the feedback from the R & D department may be caused by confusion during the installation of as software. However, we have optimized it in 5.12, and this problem may be eliminated. In 5.12, this logger is no longer used At present, if your remote control must appear, you can use adb directly installed or take a reduced version of the solution. Thank you for your email and have a nice life! Best Regards, Dji innovation SDK technical support
Please sign in to leave a comment.
Comments
3 comments