Mobile-SDK-Android-V5
Mobile-SDK-Android-V5 copied to clipboard
Mobile SDK V5.8.0 Crashes on Android 14 when app targets SDK API 34
Specs
Device: Samsung Galaxy S23 OS: Android 14 (One UI 6.0) Controller: DJI RC-N1 Aircraft: DJI Mini 3 MSDK Version: MSDK V5.8.0
Steps to reproduce
- Use MSDK V5.8.0
- Change compileSdkVersion and targetSdkVersion to 34
- Connect DJI RC-N1 to phone
- Crash reproduced
Stacktrace
--------- beginning of crash
2024-01-19 12:35:22.523 7447-8014 AndroidRuntime pid-7447 E FATAL EXCEPTION: dji_background_thread
Process: com.dronesense.pilot, PID: 7447
java.lang.IllegalArgumentException: com.dronesense.pilot: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
at android.os.Parcel.createExceptionOrNull(Parcel.java:3073)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7021)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:752)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:735)
at dji.sdk.datalink.usb.co_a.co_a(DJIUsbAccessoryReceiver.java:280)
at dji.sdk.datalink.usb.co_a.co_i(DJIUsbAccessoryReceiver.java:5)
at dji.sdk.datalink.usb.co_a$co_b.handleMessage(DJIUsbAccessoryReceiver.java:3)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeatureAsApp(ActivityManagerService.java:6460)
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:6403)
at android.app.IActivityManager$Stub.onTransact$getIntentSenderWithFeature$(IActivityManager.java:11842)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3381)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3195)
2024-01-19 12:35:22.732 7447-8014 DsLog pid-7447 E java.lang.IllegalArgumentException: com.dronesense.pilot: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
at android.os.Parcel.createExceptionOrNull(Parcel.java:3073)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7021)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:752)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:735)
at dji.sdk.datalink.usb.co_a.co_a(DJIUsbAccessoryReceiver.java:280)
at dji.sdk.datalink.usb.co_a.co_i(DJIUsbAccessoryReceiver.java:5)
at dji.sdk.datalink.usb.co_a$co_b.handleMessage(DJIUsbAccessoryReceiver.java:3)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeatureAsApp(ActivityManagerService.java:6460)
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:6403)
at android.app.IActivityManager$Stub.onTransact$getIntentSenderWithFeature$(IActivityManager.java:11842)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3381)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3195)
Agent comment from yating.liao in Zendesk ticket #99526:
Actually, the latest version of MSDK V5, which is MSDK V5.8, has not been adapted for Android 14 yet. We have already reported this issue to the team.
°°°
Hi guys, unfortunately this was prematurely closed.
This still occurs with SDK 5.9.0:
2024-06-03 10:18:42.678 26256-26673 AndroidRuntime pid-26256 E FATAL EXCEPTION: dji_background_thread
Process: com.dronesense.pilot, PID: 26256
java.lang.IllegalArgumentException: com.dronesense.pilot: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
at android.os.Parcel.createExceptionOrNull(Parcel.java:3073)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7041)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:752)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:735)
at dji.sdk.datalink.usb.co_a.co_a(DJIUsbAccessoryReceiver.java:280)
at dji.sdk.datalink.usb.co_a.co_i(DJIUsbAccessoryReceiver.java:5)
at dji.sdk.datalink.usb.co_a$co_b.handleMessage(DJIUsbAccessoryReceiver.java:3)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeatureAsApp(ActivityManagerService.java:6488)
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:6431)
at android.app.IActivityManager$Stub.onTransact$getIntentSenderWithFeature$(IActivityManager.java:11943)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3400)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3199)
2024-06-03 10:18:43.225 26256-26673 DsLog pid-26256 E java.lang.IllegalArgumentException: com.dronesense.pilot: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE.
at android.os.Parcel.createExceptionOrNull(Parcel.java:3073)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7041)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:752)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:735)
at dji.sdk.datalink.usb.co_a.co_a(DJIUsbAccessoryReceiver.java:280)
at dji.sdk.datalink.usb.co_a.co_i(DJIUsbAccessoryReceiver.java:5)
at dji.sdk.datalink.usb.co_a$co_b.handleMessage(DJIUsbAccessoryReceiver.java:3)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeatureAsApp(ActivityManagerService.java:6488)
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:6431)
at android.app.IActivityManager$Stub.onTransact$getIntentSenderWithFeature$(IActivityManager.java:11943)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3400)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3199)
i am also facing same issue in 5.9.0
Fatal Exception: java.lang.IllegalArgumentException: org.clearspotai.app: Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE, an implicit Intent within and without FLAG_NO_CREATE and FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT for security reasons. To retrieve an already existing PendingIntent, use FLAG_NO_CREATE, however, to create a new PendingIntent with an implicit Intent use FLAG_IMMUTABLE. at android.os.Parcel.createExceptionOrNull(Parcel.java:3073) at android.os.Parcel.createException(Parcel.java:3053) at android.os.Parcel.readException(Parcel.java:3036) at android.os.Parcel.readException(Parcel.java:2978) at android.app.IActivityManager$Stub$Proxy.getIntentSenderWithFeature(IActivityManager.java:7041) at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:752) at android.app.PendingIntent.getBroadcast(PendingIntent.java:735) at dji.sdk.datalink.usb.co_a.co_a(DJIUsbAccessoryReceiver.java:280) at dji.sdk.datalink.usb.co_a.co_i(DJIUsbAccessoryReceiver.java:5) at dji.sdk.datalink.usb.co_a$co_b.handleMessage(DJIUsbAccessoryReceiver.java:3) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loopOnce(Looper.java:230) at android.os.Looper.loop(Looper.java:319) at android.os.HandlerThread.run(HandlerThread.java:67)