dji-sdk / Mobile-SDK-Android-V5

MSDK V5 Sample
Other
247 stars 126 forks source link

Targeting U+ (version 34 and above) disallows creating or retrieving a PendingIntent with FLAG_MUTABLE #370

Open namnhbhtech opened 2 weeks ago

namnhbhtech commented 2 weeks ago

Steps to reproduce:

  1. update android target sdk version
  2. migrate methods if needs
  3. build then open app on device android 14
  4. plugging controller usb when app is running

gradle.properties

#build config
ANDROID_MIN_SDK_VERSION=26
ANDROID_TARGET_SDK_VERSION=34
ANDROID_COMPILE_SDK_VERSION=34
FATAL EXCEPTION: dji_background_thread (Ask Gemini)
Process: com.dji.sampleV5.aircraft, PID: 24822
java.lang.IllegalArgumentException: com.dji.sampleV5.aircraft: 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:7027)
at java.lang.reflect.Method.invoke(Native Method)
at leakcanary.ServiceWatcher$install$4$2.invoke(ServiceWatcher.kt:93)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy3.getIntentSenderWithFeature(Unknown Source)
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:6468)
at com.android.server.am.ActivityManagerService.getIntentSenderWithFeature(ActivityManagerService.java:6411)
at android.app.IActivityManager$Stub.onTransact$getIntentSenderWithFeature$(IActivityManager.java:11885)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3375)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3198)

image

dji-dev commented 2 weeks ago

Agent comment from yating.liao in Zendesk ticket #109722:

The Mobile SDK has not been adapted for Android 14 yet, so the TargetSDKversion cannot be set to 34.

°°°