-
Notifications
You must be signed in to change notification settings - Fork 85
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
Comments
unable to reproduce the issue...on android 12....can u try by creating new project and then implement the plugin |
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
Here's the log again
|
@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 |
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 |
Having the same issue on android 12 @evilRat |
will release the patch today....everything seems to be working fine as of now from my side on emulator api level 31 & 32 |
@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.
|
PS: I tried on android 32 emulator. But the app crashes there too.
|
|
@evilRat adding the bluetooth permission still causes the app to crash |
can you try to use permission_handler to give permission.... |
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..... |
hello @evilRat , any updates in this? |
@evilRat getting the same issue after adding permissions through permission handler. its about flag_immutable or flag_mutable for intents when targeting S+ verions.
|
@evilRat any updates? running on a tight deadline here |
email us at info@evilrattechnologies.com |
@evilRat sent you an email |
@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 |
Thanks for sharing! It worked. |
I'm seeing the same issue, and when I change the target and compile sdk to 30, I got: |
Actually it doesn't crash with those settings (but still trying to make this package to work): |
it should work when you set targetsdk to 30 and compilesdk to 32 |
I confirm it does work, thanks! |
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? |
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! |
20th of july aprox
…On Fri, Jul 8, 2022, 8:49 PM Remy Baudet ***@***.***> wrote:
We are almost done...will soon be releasing latest version with latest
zoom sdk available
… <#m_-1669497072884980674_>
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
<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)
<#65 (comment)>>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMAAH4KX34QNCXOUHGN3OUDVSWXC5ANCNFSM5QPW6H3Q
<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!
—
Reply to this email directly, view it on GitHub
<#65 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMAAH4IJ6HM2BVBSSSSDBHTVTBBJPANCNFSM5QPW6H3Q>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Is the new release with resolution out yet, as still getting the same errors? |
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? |
@evilRat any news buddy, still crushing on android 12 |
@evilRat Please confirm if this has been released and if this works on Android 12. Our apps crash when using zoom meetings |
@evilRat Is there any update on this issue? |
red mi c10 same issue |
i've also got the same issue in OnePlus Nord Android 12. |
I see this issue on specific Xiaomi devices like e.g. the Redmi 10C: |
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.
The text was updated successfully, but these errors were encountered: