Running Mobile/UX SDK on DJI Crystal Sky
996 2 2021-5-27
Uploading and Loding Picture ...(0/1)
o(^-^)o
djiuser_75l3k7ZKtIp1
lvl.2

Austria
Offline

Hello
Was anybody able to run a Mobile/UX App on DJI Crystal Sky ??

As example the unmodified Android-UXSDKDemo from
https://github.com/DJI-Mobile-SDK-Tutorials/Android-UXSDKDemo
crash with   

--------- beginning of crash
05-27 14:44:15.561 3560-3593/com.dji.uxsdkdemo E/AndroidRuntime: FATAL EXCEPTION: UrgentThreadPool#1
    Process: com.dji.uxsdkdemo, PID: 3560
    java.lang.IllegalStateException: Method addObserver must be called on the main thread
        at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(:317)
        at androidx.lifecycle.LifecycleRegistry.addObserver(:172)
        at dji.sdk.sdkmanager.DJISDKManager.initParams()
        at dji.sdk.sdkmanager.DJISDKManager.initSDKManager()
        at dji.sdk.sdkmanager.DJISDKManager.registerApp()
        at dji.sdk.sdkmanager.DJISDKManager.access$800()
        at dji.sdk.sdkmanager.DJISDKManager$6$1.onDownloadSuccess()
        at dji.internal.ghu.ghu.fdd()
        at dji.sdk.sdkmanager.DJISDKManager$6.run()
        at dji.sdksharedlib.gfd.koy.run()
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)

My own MobileSDK app crash by calling onProductConnect  DJISDKManager.SDKManagerCallback

05-27 14:56:32.418 4833-4883/com.dji.ux.sample E/AndroidRuntime: FATAL EXCEPTION: dji_sdk_callback_thread
    Process: com.dji.ux.sample, PID: 4833
    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
        at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6687)
        at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1009)
        at android.view.ViewGroup.invalidateChild(ViewGroup.java:4690)
        at android.view.View.invalidateInternal(View.java:11858)
        at android.view.View.invalidate(View.java:11822)
        at android.view.View.invalidate(View.java:11806)
        at android.widget.TextView.updateTextColors(TextView.java:3653)
        at android.widget.TextView.setTextColor(TextView.java:2835)
        at com.dji.ux.sample.MainActivity$1.onProductConnect(MainActivity.java:102)
        at dji.internal.dgh.koy.run()
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.os.HandlerThread.run(HandlerThread.java:61)

Both apps running on common android tablets
2021-5-27
Use props
djiuser_75l3k7ZKtIp1
lvl.2

Austria
Offline

I found out that the google play stack is simply missing on the SC - what a scrap are the sc ....

I wanted use Google Maps with valid API key - dont want use this unreadable chinese Amap stuff


W/GooglePlayServicesUtil: Google Play Store is missing.
D/AndroidRuntime: Shutting down VM
E/UsbAccessoryService: final destroy() 71
E/DJICrashHandler: uncaughtException 3
E/UsbAccessoryService: final destroy() 72
E/wm220: ****resetSwitchFromWifiFlag
E/DJIUsbAccessoryReceiver: receiver destroySession
E/UsbAccessoryService: final destroy() 73
E/UsbAccessoryService: final destroy() 75
E/UsbAccessoryService: final destroy() 76
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.dji.ux.sample, PID: 6689
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dji.ux.sample/com.dji.ux.sample.CompleteWidgetActivity}: com.dji.mapkit.core.exceptions.MapkitInitializerException: Error initializing map for provider type 1
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2347)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2409)
        at android.app.ActivityThread.access$800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5282)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
     Caused by: com.dji.mapkit.core.exceptions.MapkitInitializerException: Error initializing map for provider type 1
        at com.dji.mapkit.google.provider.GoogleProvider.requestMapView()
        at com.dji.mapkit.core.providers.MapProvider.dispatchMapViewRequest()
        at dji.ux.widget.MapWidget.initGoogleMap()
        at com.dji.ux.sample.CompleteWidgetActivity.onCreate(CompleteWidgetActivity.java:66)
        at android.app.Activity.performCreate(Activity.java:6222)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2297)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2409)
        at android.app.ActivityThread.access$800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5282)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)

2021-5-28
Use props
maryfox
lvl.1

Belarus
Offline

Hi! I would like to share my experience.

I had run my Android app based on Modile/UX SDK on the DJI Crystal Sky.
It has modified Android OS without Google Play Services.I had fail when I was trying to install them.
In conclusion, there is no way to work with Google Maps.
I used Mapbox maps instead.
2022-6-15
Use props
Advanced
You need to log in before you can reply Login | Register now

Credit Rules