Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App Crashes on joining meeting on Android 12 #65

Closed
Roopaish opened this issue Mar 11, 2022 · 39 comments
Closed

App Crashes on joining meeting on Android 12 #65

Roopaish opened this issue Mar 11, 2022 · 39 comments
Labels
issue-platform: android issue is related to android question: info required Further information is requested severity: medium

Comments

@Roopaish
Copy link

It was working fine on Android 11 but I had an update today to Android 12 and now the app crashes on joining meeting.

Here's the log

E/mple.learning(29820): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29820): Shutting down VM
E/AndroidRuntime(29820): FATAL EXCEPTION: main
E/AndroidRuntime(29820): Process: com.example.learning, PID: 29820
E/AndroidRuntime(29820): java.lang.RuntimeException: Unable to resume activity {com.clamphook.ClampHook/com.zipow.videobox.JoinByURLActivity}: java.lang.SecurityException: getCallState: Neither user 10635 nor current process has android.permission.READ_PHONE_STATE.
E/AndroidRuntime(29820): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4865)
E/AndroidRuntime(29820): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4898)
E/AndroidRuntime(29820): at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54)
E/AndroidRuntime(29820): at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
E/AndroidRuntime(29820): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
E/AndroidRuntime(29820): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
E/AndroidRuntime(29820): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2260)
E/AndroidRuntime(29820): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(29820): at android.os.Looper.loopOnce(Looper.java:210)
E/AndroidRuntime(29820): at android.os.Looper.loop(Looper.java:299)
E/AndroidRuntime(29820): at android.app.ActivityThread.main(ActivityThread.java:8138)
E/AndroidRuntime(29820): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(29820): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
E/AndroidRuntime(29820): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037)
E/AndroidRuntime(29820): Caused by: java.lang.SecurityException: getCallState: Neither user 10635 nor current process has android.permission.READ_PHONE_STATE.
E/AndroidRuntime(29820): at android.os.Parcel.createExceptionOrNull(Parcel.java:2425)
E/AndroidRuntime(29820): at android.os.Parcel.createException(Parcel.java:2409)
E/AndroidRuntime(29820): at android.os.Parcel.readException(Parcel.java:2392)
E/AndroidRuntime(29820): at android.os.Parcel.readException(Parcel.java:2334)
E/AndroidRuntime(29820): at com.android.internal.telecom.ITelecomService$Stub$Proxy.getCallStateUsingPackage(ITelecomService.java:2578)
E/AndroidRuntime(29820): at android.telecom.TelecomManager.getCallState(TelecomManager.java:1823)
E/AndroidRuntime(29820): at android.telephony.TelephonyManager.getCallState(TelephonyManager.java:5746)
E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.y.L(CmmSipAudioMgr.java:7)
E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.y.o(CmmSipAudioMgr.java:1)
E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.CmmSIPCallManager.j1(CmmSIPCallManager.java:11)
E/AndroidRuntime(29820): at com.zipow.videobox.sip.server.CmmSIPCallManager.g1(CmmSIPCallManager.java:9)
E/AndroidRuntime(29820): at com.zipow.videobox.JoinByURLActivity.a(JoinByURLActivity.java:19)
E/AndroidRuntime(29820): at com.zipow.videobox.JoinByURLActivity.b(JoinByURLActivity.java:31)
E/AndroidRuntime(29820): at com.zipow.videobox.JoinByURLActivity.onResume(JoinByURLActivity.java:125)
E/AndroidRuntime(29820): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1477)
E/AndroidRuntime(29820): at android.app.Activity.performResume(Activity.java:8338)
E/AndroidRuntime(29820): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4855)
E/AndroidRuntime(29820): ... 13 more
D/OOMEventManagerFK(29820): checkEventAndDumpForJE: 0
I/Process (29820): Sending signal. PID: 29820 SIG: 9
Lost connection to device.

@ark-brighthustle
Copy link
Owner

unable to reproduce the issue...on android 12....can u try by creating new project and then implement the plugin

@ark-brighthustle ark-brighthustle added question: info required Further information is requested severity: medium issue-platform: android issue is related to android labels Mar 13, 2022
@Roopaish
Copy link
Author

Roopaish commented Mar 14, 2022

Tried by creating a new project but the result is same.

Here's the full code.
    import 'dart:async';
    import 'dart:io';

    import 'package:flutter/material.dart';
    import 'package:flutter_zoom_sdk/zoom_options.dart';
    import 'package:flutter_zoom_sdk/zoom_view.dart';

    void main() {
      runApp(const MyApp());
    }

    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);

      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: const MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }

    class MyHomePage extends StatefulWidget {
      const MyHomePage({Key? key, required this.title}) : super(key: key);
      final String title;

      @override
      State<MyHomePage> createState() => _MyHomePageState();
    }

    class _MyHomePageState extends State<MyHomePage> {
      @override
      Widget build(BuildContext context) {
        final meetingIdController = TextEditingController();
        final meetingPasswordController = TextEditingController();
        Timer timer = Timer(const Duration(seconds: 5), () {});

        Future<void> joinMeeting(BuildContext context) async {
          bool _isMeetingEnded(String status) {
            var result = false;
            if (Platform.isAndroid) {
              result = status == "MEETING_STATUS_DISCONNECTING" ||
                  status == "MEETING_STATUS_FAILED";
            } else {
              result = status == "MEETING_STATUS_IDLE";
            }
            return result;
          }

          if (meetingIdController.text.isNotEmpty &&
              meetingPasswordController.text.isNotEmpty) {
            ZoomOptions zoomOptions = ZoomOptions(
              domain: "zoom.us",
              appKey: appKey, //API KEY FROM ZOOM
              appSecret: appSecret, //API SECRET FROM ZOOM
            );
            var meetingOptions = ZoomMeetingOptions(
              userId:
                  'roopaish', //pass username for join meeting only --- Any name eg:- EVILRATT.
              meetingId:
                  meetingIdController.text, //pass meeting id for join meeting only
              meetingPassword: meetingPasswordController
                  .text, //pass meeting password for join meeting only
              disableDialIn: "true",
              disableDrive: "true",
              disableInvite: "true",
              disableShare: "true",
              disableTitlebar: "false",
              viewOptions: "true",
              noAudio: "false",
              noDisconnectAudio: "false",
            );
            try {
              var zoom = ZoomView();
              print("hello1");

              final results = await zoom.initZoom(zoomOptions);

              print("hello2");
              print(results);
              if (results[0] == 0) {
                zoom.onMeetingStatus().listen((status) {
                  print(
                      "[Meeting Status Stream] : " + status[0] + " - " + status[1]);
                  if (_isMeetingEnded(status[0])) {
                    print("[Meeting Status] :- Ended");
                    timer.cancel();
                  }
                });
                print("listen on event channel");
                zoom.joinMeeting(meetingOptions).then((joinMeetingResult) {
                  timer = Timer.periodic(new Duration(seconds: 2), (timer) {
                    zoom.meetingStatus(meetingOptions.meetingId!).then((status) {
                      print("[Meeting Status Polling] : " +
                          status[0] +
                          " - " +
                          status[1]);
                    });
                  });
                });
              }
            } catch (e) {
              ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                content: Text(e.toString()),
              ));
            }
          } else {
            if (meetingIdController.text.isEmpty) {
              ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
                content: Text("Enter a valid meeting id to continue."),
              ));
            } else if (meetingPasswordController.text.isEmpty) {
              ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
                content: Text("Enter a meeting password to start."),
              ));
            }
          }
        }

        return Scaffold(
          appBar: PreferredSize(
            preferredSize: const Size.fromHeight(58),
            child: AppBar(
              elevation: 0,
              centerTitle: false,
              leadingWidth: 30,
              title: Text(
                "Zoom Meetings",
                overflow: TextOverflow.ellipsis,
              ),
              backgroundColor: Colors.transparent,
            ),
          ),
          body: ListView(
            padding: const EdgeInsets.all(16),
            children: [
              InputField(
                label: "Meeting id",
                controller: meetingIdController,
              ),
              const SizedBox(
                height: 16,
              ),
              InputField(
                label: "Meeting Password",
                controller: meetingPasswordController,
              ),
              const SizedBox(
                height: 24,
              ),
              Button(
                label: "Join",
                onPressed: () => joinMeeting(context),
              ),
            ],
          ),
        );
      }
    }

    class Button extends StatelessWidget {
      final Function()? onPressed;
      final String label;
      final Color? textColor;
      final Color? backgroundColor;
      final double? height;
      final double? width;
      final double fontSize;
      final Icon? icon;
      final EdgeInsetsGeometry? padding;
      final EdgeInsetsGeometry? margin;
      final bool shrink;
      const Button({
        Key? key,
        required this.onPressed,
        required this.label,
        this.textColor,
        this.backgroundColor = Colors.grey,
        this.height,
        this.width = double.infinity,
        this.fontSize = 18,
        this.icon,
        this.padding,
        this.margin,
        this.shrink = false,
      }) : super(key: key);

      @override
      Widget build(BuildContext context) {
        return TextButton(
          onPressed: onPressed,
          child: Container(
            width: width,
            padding: padding,
            margin: margin,
            height: height,
            constraints: const BoxConstraints(minHeight: 35),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                if (icon != null) icon!,
                if (icon != null) const SizedBox(width: 8),
                Flexible(
                  child: Text(
                    label,
                    overflow: TextOverflow.clip,
                    textAlign: TextAlign.center,
                  ),
                ),
              ],
            ),
          ),
          style: TextButton.styleFrom(
            backgroundColor: backgroundColor,
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(5),
            ),
          ),
        );
      }
    }

    class InputField extends StatelessWidget {
      final String? label;
      final bool obscureText;
      final String? Function(String?)? validator;
      final TextInputType? keyboardType;
      final void Function(String?)? onSaved;
      final String? initialValue;
      final int lines;
      final TextEditingController? controller;

      const InputField(
          {Key? key,
          this.label,
          this.obscureText = false,
          this.validator,
          this.keyboardType,
          this.onSaved,
          this.initialValue,
          this.lines = 1,
          this.controller})
          : super(key: key);

      @override
      Widget build(BuildContext context) {
        return Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text(
              label!,
            ),
            const SizedBox(
              height: 8,
            ),
            TextFormField(
              controller: controller,
              minLines: lines,
              maxLines: lines,
              initialValue: initialValue,
              onSaved: onSaved,
              validator: validator,
              keyboardType: keyboardType,
              obscureText: obscureText,
              cursorColor: Colors.black,
              decoration: InputDecoration(
                fillColor: const Color(0xFFF8FAFC),
                filled: true,
                border: const OutlineInputBorder(
                  borderSide: BorderSide(color: Color(0xFF91A4B7), width: .5),
                ),
                focusedBorder: const OutlineInputBorder(
                  borderSide: BorderSide(color: Color(0xFF91A4B7)),
                ),
              ),
            )
          ],
        );
      }
    }
Also there was a warning
    WARNING: [Processor] Library '[C:\Users\rupes\.gradle\caches\modules-2\files-2.1\com.google.android.exoplayer\exoplayer-ui\2.12.3\474089166ba2dd1e1fd0c1fbbbfd109e681041fa\exoplayer-ui-2.12.3.aar]()' contains references to both AndroidX and old support library. This seems like the library is partially migrated. Jetifier will try to rewrite the library anyway.
    Example of androidX reference: 'androidx/core/app/NotificationCompat$Builder'
    Example of support library reference: 'android/support/v4/media/session/MediaSessionCompat$Token'
Here's the log again
    I/flutter (14603): [0, 0]
    I/flutter (14603): listen on event channel
    D/IS_CTS_MODE(14603): true
    D/MULTI_WINDOW_SWITCH_ENABLED(14603): false
    D/DecorView[](14603): getWindowModeFromSystem  windowmode is 1
    E/example.testin(14603): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
    E/example.testin(14603): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
    D/AndroidRuntime(14603): Shutting down VM
    E/AndroidRuntime(14603): FATAL EXCEPTION: main
    E/AndroidRuntime(14603): Process: com.example.testing, PID: 14603
    E/AndroidRuntime(14603): java.lang.RuntimeException: Unable to resume activity {com.example.testing/com.zipow.videobox.JoinByURLActivity}: java.lang.SecurityException: getCallState: Neither user 10652 nor current process has android.permission.READ_PHONE_STATE.
    E/AndroidRuntime(14603): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4865)
    E/AndroidRuntime(14603): 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4898)
    E/AndroidRuntime(14603): 	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54)
    E/AndroidRuntime(14603): 	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
    E/AndroidRuntime(14603): 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
    E/AndroidRuntime(14603): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
    E/AndroidRuntime(14603): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2260)
    E/AndroidRuntime(14603): 	at android.os.Handler.dispatchMessage(Handler.java:106)
    E/AndroidRuntime(14603): 	at android.os.Looper.loopOnce(Looper.java:210)
    E/AndroidRuntime(14603): 	at android.os.Looper.loop(Looper.java:299)
    E/AndroidRuntime(14603): 	at android.app.ActivityThread.main(ActivityThread.java:8138)
    E/AndroidRuntime(14603): 	at java.lang.reflect.Method.invoke(Native Method)
    E/AndroidRuntime(14603): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
    E/AndroidRuntime(14603): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037)
    E/AndroidRuntime(14603): Caused by: java.lang.SecurityException: getCallState: Neither user 10652 nor current process has android.permission.READ_PHONE_STATE.
    E/AndroidRuntime(14603): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2425)
    E/AndroidRuntime(14603): 	at android.os.Parcel.createException(Parcel.java:2409)
    E/AndroidRuntime(14603): 	at android.os.Parcel.readException(Parcel.java:2392)
    E/AndroidRuntime(14603): 	at android.os.Parcel.readException(Parcel.java:2334)
    E/AndroidRuntime(14603): 	at com.android.internal.telecom.ITelecomService$Stub$Proxy.getCallStateUsingPackage(ITelecomService.java:2578)
    E/AndroidRuntime(14603): 	at android.telecom.TelecomManager.getCallState(TelecomManager.java:1823)
    E/AndroidRuntime(14603): 	at android.telephony.TelephonyManager.getCallState(TelephonyManager.java:5746)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.sip.server.y.L(CmmSipAudioMgr.java:7)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.sip.server.y.o(CmmSipAudioMgr.java:1)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.sip.server.CmmSIPCallManager.j1(CmmSIPCallManager.java:11)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.sip.server.CmmSIPCallManager.g1(CmmSIPCallManager.java:9)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.JoinByURLActivity.a(JoinByURLActivity.java:19)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.JoinByURLActivity.b(JoinByURLActivity.java:31)
    E/AndroidRuntime(14603): 	at com.zipow.videobox.JoinByURLActivity.onResume(JoinByURLActivity.java:125)
    E/AndroidRuntime(14603): 	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1477)
    E/AndroidRuntime(14603): 	at android.app.Activity.performResume(Activity.java:8338)
    E/AndroidRuntime(14603): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4855)
    E/AndroidRuntime(14603): 	... 13 more
    E/AndroidRuntime(14603): Caused by: android.os.RemoteException: Remote stack trace:
    E/AndroidRuntime(14603): 	at android.app.ContextImpl.enforce(ContextImpl.java:2188)
    E/AndroidRuntime(14603): 	at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2216)
    E/AndroidRuntime(14603): 	at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:915)
    E/AndroidRuntime(14603): 	at com.android.server.telecom.TelecomServiceImpl.canReadPhoneState(TelecomServiceImpl.java:2342)
    E/AndroidRuntime(14603): 	at com.android.server.telecom.TelecomServiceImpl.access$300(TelecomServiceImpl.java:80)
    E/AndroidRuntime(14603):
    D/OOMEventManagerFK(14603): checkEventAndDumpForJE: 0
    I/Process (14603): Sending signal. PID: 14603 SIG: 9
    Lost connection to device.
    Exited (sigterm)
    ****

@Roopaish
Copy link
Author

@evilRat Any updates on this?

@ark-brighthustle
Copy link
Owner

@evilRat Any updates on this?

unable to reproduce the issue.........looking into it for fix

@ark-brighthustle
Copy link
Owner

@evilRat Any updates on this?

unable to reproduce the issue.........looking into it for fix

api level 32 has been added...can you check if it works or not

@Roopaish
Copy link
Author

api level 32 has been added...can you check if it works or not

still the same result with new version.

E/example.testin(16700): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

@ark-brighthustle
Copy link
Owner

api level 32 has been added...can you check if it works or not

still the same result with new version.

E/example.testin(16700): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

Issue still persists....looking for it to fix it as soon as possible

@Faizan-Farooq
Copy link

Faizan-Farooq commented Mar 27, 2022

Having the same issue on android 12 @evilRat
App crashes when creating a meeting
I am sure will crash when joining as well
In the logs it can be seen that a permission is needed. I added the permission as well bit still the app crashed

@ark-brighthustle
Copy link
Owner

Having the same issue on android 12 @evilRat App crashes when creating a meeting I am sure will crash when joining as well In the logs it can be seen that a permission is needed. I added the permission as well bit still the app crashed

will release the patch today....everything seems to be working fine as of now from my side on emulator api level 31 & 32

@Roopaish
Copy link
Author

Roopaish commented Mar 31, 2022

@evilRat Thank you for the effort but the issue still persists. It's working fine on other android versions. But not on my android 12 device. By the way, my device is Redmi Note 10 pro with MIUI 13.0.4 Global Stable version and android12 SKQ1.210908.001.

/om.example.tes(29239): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found
D/DecorView[](29239): onWindowFocusChanged hasWindowFocus true
I/ZoomSDK (29239): initialize context is android.app.Application@dd3729b
I/EngineFactory(29239): Provider GmsCore_OpenSSL not available
I/AudioManager(29239): In isBluetoothScoAvailableOffCall(), calling appilication: com.example.test, return value: true
I/AudioManager(29239): In isBluetoothScoOn(), calling application: com.example.test
D/BluetoothHeadset(29239): Binding service...
W/om.example.tes(29239): Long monitor contention with owner main (29239) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 155ms
I/flutter (29239): listen on event channel
I/flutter (29239): true
D/IS_CTS_MODE(29239): true
D/MULTI_WINDOW_SWITCH_ENABLED(29239): false
D/DecorView[](29239): getWindowModeFromSystem  windowmode is 1
2
E/om.example.tes(29239): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29239): Shutting down VM
E/AndroidRuntime(29239): FATAL EXCEPTION: main
E/AndroidRuntime(29239): Process: com.example.test, PID: 29239
...

@Roopaish
Copy link
Author

PS: I tried on android 32 emulator. But the app crashes there too.
I pushed the whole project in here

I/EngineFactory( 7112): Provider GmsCore_OpenSSL not available
D/BluetoothHeadset( 7112): Proxy object connected
W/om.example.tes( 7112): Long monitor contention with owner main (7112) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 2.131s
D/AndroidRuntime( 7112): Shutting down VM
E/AndroidRuntime( 7112): FATAL EXCEPTION: main
E/AndroidRuntime( 7112): Process: com.example.test, PID: 7112
E/AndroidRuntime( 7112): java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for AttributionSource { uid = 10148, packageName = com.example.test, attributionTag = null, token = android.os.BinderProxy@3f2dead, next = null }: HeadsetService
E/AndroidRuntime( 7112): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2425)
E/AndroidRuntime( 7112): 	at android.os.Parcel.createException(Parcel.java:2409)
E/AndroidRuntime( 7112): 	at android.os.Parcel.readException(Parcel.java:2392)
E/AndroidRuntime( 7112): 	at android.os.Parcel.readException(Parcel.java:2334)
E/AndroidRuntime( 7112): 	at android.bluetooth.IBluetoothHeadset$Stub$Proxy.getConnectedDevicesWithAttribution(IBluetoothHeadset.java:1040)
E/AndroidRuntime( 7112): 	at android.bluetooth.BluetoothHeadset.getConnectedDevices(BluetoothHeadset.java:549)
E/AndroidRuntime( 7112): 	at us.zoom.androidlib.util.HeadsetUtil$1.onServiceConnected(HeadsetUtil.java:108)
E/AndroidRuntime( 7112): 	at android.bluetooth.BluetoothHeadset$3.handleMessage(BluetoothHeadset.java:1422)
E/AndroidRuntime( 7112): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 7112): 	at android.os.Looper.loopOnce(Looper.java:201)
E/AndroidRuntime( 7112): 	at android.os.Looper.loop(Looper.java:288)
E/AndroidRuntime( 7112): 	at android.app.ActivityThread.main(ActivityThread.java:7842)
E/AndroidRuntime( 7112): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 7112): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/AndroidRuntime( 7112): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
I/Process ( 7112): Sending signal. PID: 7112 SIG: 9
Lost connection to device.

@ark-brighthustle
Copy link
Owner

Need android.permission.BLUETOOTH_CONNECT

<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- Needed only if your app looks for Bluetooth devices.
         If your app doesn't use Bluetooth scan results to derive physical
         location information, you can strongly assert that your app
         doesn't derive physical location. -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<!-- Needed only if your app makes the device discoverable to Bluetooth
  devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<!-- Needed only if your app communicates with already-paired Bluetooth
       devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<!--bibo01 : hardware option-->
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>

@Faizan-Farooq
Copy link

Faizan-Farooq commented Mar 31, 2022

@evilRat adding the bluetooth permission still causes the app to crash
as you can see i added the permission but still the app crashes on android 12 when creating a meeting
Screenshot 2022-03-31 at 2 15 39 PM

@ark-brighthustle
Copy link
Owner

can you try to use permission_handler to give permission....

@Roopaish
Copy link
Author

Roopaish commented Apr 4, 2022

permission_handler

Tried, now the BluetoothConnect error only has gone. But the old log is same which crashes the app.

E/om.example.tes( 9392): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.example.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

@ark-brighthustle
Copy link
Owner

permission_handler

Tried, now the BluetoothConnect error only has gone. But the old log is same which crashes the app.

E/om.example.tes( 9392): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)

java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.example.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

Look into it.....

@Roopaish
Copy link
Author

hello @evilRat , any updates in this?

@Faizan-Farooq
Copy link

Faizan-Farooq commented Apr 13, 2022

@evilRat getting the same issue after adding permissions through permission handler. its about flag_immutable or flag_mutable for intents when targeting S+ verions.

permission_handler

Tried, now the BluetoothConnect error only has gone. But the old log is same which crashes the app.
E/om.example.tes( 9392): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.example.test: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

Look into it.....

@Faizan-Farooq
Copy link

@evilRat any updates? running on a tight deadline here

@ark-brighthustle
Copy link
Owner

@evilRat any updates? running on a tight deadline here

email us at info@evilrattechnologies.com

@Faizan-Farooq
Copy link

Faizan-Farooq commented Apr 16, 2022

@evilRat any updates? running on a tight deadline here

email us at info@evilrattechnologies.com

@evilRat sent you an email

@Faizan-Farooq
Copy link

@evilRat @Roopaish i got it to work. the issue was in the build.gradle file. my target and compile sdk both were set to 31. i changed the targetsdk to 30 and now its working. Although i believe you should make the targetsdk compatible to 31 or 32. @evilRat If you set the target sdk to 31 or 32 you will start getting the errors that we were getting

@Roopaish
Copy link
Author

targetsdk to 30

Thanks for sharing! It worked.

@Statyk7
Copy link

Statyk7 commented Apr 25, 2022

I'm seeing the same issue, and when I change the target and compile sdk to 30, I got:
Warning: The plugin flutter_zoom_sdk requires Android SDK version 32.
Any idea?

@Statyk7
Copy link

Statyk7 commented Apr 25, 2022

I'm seeing the same issue, and when I change the target and compile sdk to 30, I got: Warning: The plugin flutter_zoom_sdk requires Android SDK version 32. Any idea?

Actually it doesn't crash with those settings (but still trying to make this package to work):
targetSdkVersion 30
compileSdkVersion 32

@Faizan-Farooq
Copy link

I'm seeing the same issue, and when I change the target and compile sdk to 30, I got: Warning: The plugin flutter_zoom_sdk requires Android SDK version 32. Any idea?

Actually it doesn't crash with those settings (but still trying to make this package to work): targetSdkVersion 30 compileSdkVersion 32

it should work when you set targetsdk to 30 and compilesdk to 32

@Statyk7
Copy link

Statyk7 commented Apr 25, 2022

I confirm it does work, thanks!

@mayurdhurpate
Copy link

As per Google Play Store policies, starting August 2022, apps are expected to target version 31 or higher (reference). Does the SDK now support version 31?

@ark-brighthustle
Copy link
Owner

ark-brighthustle commented Jul 8, 2022 via email

@Statyk7
Copy link

Statyk7 commented Jul 8, 2022

We are almost done...will soon be releasing latest version with latest zoom sdk available

On Wed, Jul 6, 2022, 9:52 PM Mayur Dhurpate @.> wrote: As per Google Play Store policies, starting August 2022, apps are expected to target version 31 or higher (reference https://support.google.com/googleplay/android-developer/answer/11926878?hl=en). Does the SDK now support version 31? — Reply to this email directly, view it on GitHub <#65 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMAAH4KX34QNCXOUHGN3OUDVSWXC5ANCNFSM5QPW6H3Q . You are receiving this because you were mentioned.Message ID: @.>

That's great to hear! Do you have any idea on when it will be release approximately? Thanks again for sharing this package!

@ark-brighthustle
Copy link
Owner

ark-brighthustle commented Jul 8, 2022 via email

@anwaysomani
Copy link

Is the new release with resolution out yet, as still getting the same errors?

@Manojdaiya1992
Copy link

Hi @evilRat app is still crashing if using SDK 31. As per google policies we are not able to deploy our app on google store. Can you please let us know when this plugin will support the SDK 31?

@EmadBeltaje
Copy link

@evilRat any news buddy, still crushing on android 12
java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.evilratt.flutter_zoom_sdk_example: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

@MayankSehgal21888
Copy link

@evilRat Please confirm if this has been released and if this works on Android 12. Our apps crash when using zoom meetings

@rashidgondal
Copy link

@evilRat Is there any update on this issue?

@tunhnt2
Copy link

tunhnt2 commented May 8, 2023

@evilRat Thank you for the effort but the issue still persists. It's working fine on other android versions. But not on my android 12 device. By the way, my device is Redmi Note 10 pro with MIUI 13.0.4 Global Stable version and android12 SKQ1.210908.001.

/om.example.tes(29239): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found
D/DecorView[](29239): onWindowFocusChanged hasWindowFocus true
I/ZoomSDK (29239): initialize context is android.app.Application@dd3729b
I/EngineFactory(29239): Provider GmsCore_OpenSSL not available
I/AudioManager(29239): In isBluetoothScoAvailableOffCall(), calling appilication: com.example.test, return value: true
I/AudioManager(29239): In isBluetoothScoOn(), calling application: com.example.test
D/BluetoothHeadset(29239): Binding service...
W/om.example.tes(29239): Long monitor contention with owner main (29239) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 155ms
I/flutter (29239): listen on event channel
I/flutter (29239): true
D/IS_CTS_MODE(29239): true
D/MULTI_WINDOW_SWITCH_ENABLED(29239): false
D/DecorView[](29239): getWindowModeFromSystem  windowmode is 1
2
E/om.example.tes(29239): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29239): Shutting down VM
E/AndroidRuntime(29239): FATAL EXCEPTION: main
E/AndroidRuntime(29239): Process: com.example.test, PID: 29239
...

red mi c10 same issue

@vivekmathew006
Copy link

@evilRat Thank you for the effort but the issue still persists. It's working fine on other android versions. But not on my android 12 device. By the way, my device is Redmi Note 10 pro with MIUI 13.0.4 Global Stable version and android12 SKQ1.210908.001.

/om.example.tes(29239): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found
D/DecorView[](29239): onWindowFocusChanged hasWindowFocus true
I/ZoomSDK (29239): initialize context is android.app.Application@dd3729b
I/EngineFactory(29239): Provider GmsCore_OpenSSL not available
I/AudioManager(29239): In isBluetoothScoAvailableOffCall(), calling appilication: com.example.test, return value: true
I/AudioManager(29239): In isBluetoothScoOn(), calling application: com.example.test
D/BluetoothHeadset(29239): Binding service...
W/om.example.tes(29239): Long monitor contention with owner main (29239) at com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getNonNullInstance()(VideoBoxApplication.java:1) waiters=0 in com.zipow.videobox.VideoBoxApplication com.zipow.videobox.VideoBoxApplication.getInstance() for 155ms
I/flutter (29239): listen on event channel
I/flutter (29239): true
D/IS_CTS_MODE(29239): true
D/MULTI_WINDOW_SWITCH_ENABLED(29239): false
D/DecorView[](29239): getWindowModeFromSystem  windowmode is 1
2
E/om.example.tes(29239): No implementation found for long com.zipow.videobox.sip.server.SIPCallEventListenerUI.nativeInit() (tried Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit and Java_com_zipow_videobox_sip_server_SIPCallEventListenerUI_nativeInit__)
D/AndroidRuntime(29239): Shutting down VM
E/AndroidRuntime(29239): FATAL EXCEPTION: main
E/AndroidRuntime(29239): Process: com.example.test, PID: 29239
...

red mi c10 same issue

i've also got the same issue in OnePlus Nord Android 12.

@Hoiss
Copy link

Hoiss commented Jun 6, 2023

I see this issue on specific Xiaomi devices like e.g. the Redmi 10C:
E/.testcollector11716): open libmigui.so failed! dlopen - dlopen failed: library "libmigui.so" not found D/DecorView[](11716): onWindowFocusChanged hasWindowFocus true
Can't find any solution for it.
The app seems(!) to work, but I have e.g. bluetooth problems that I do not have on other devices with the same spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
issue-platform: android issue is related to android question: info required Further information is requested severity: medium
Projects
None yet
Development

No branches or pull requests