decodedhealth / flutter_zoom_plugin

Flutter plugin for zoom
Apache License 2.0
125 stars 83 forks source link

App crashes on Android when joining a meeting #43

Open JeanEngelbrecht01 opened 4 years ago

JeanEngelbrecht01 commented 4 years ago

Your Environment

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3) [✓] Xcode - develop for iOS and macOS (Xcode 11.3.1) [✓] Android Studio (version 3.6) [✓] Connected device (3 available)

• No issues found!

Expected Behavior

Zoom widget to work on both iOS and Android

Actual Behavior

On iOS the zoom widget opens and works perfectly. On Android it works in debug mode, but when I build an App Bundle file and publish to the store, it crashes unexpectedly.

Steps to Reproduce

  1. Build app bundle
  2. Upload to Google play store
  3. Download on device
  4. Try to join Zoom meeting

Context

Join a Zoom meeting

Debug logs

Logs ``` 06-18 12:00:35.428 13183-13205/? I/flutter: meetingid - 78672790317 06-18 12:00:35.428 13183-13205/? I/flutter: meetingpassword - 5YjNwP 06-18 12:00:35.465 13183-13183/? W/ResourceType: ResTable_typeSpec entry count inconsistent: given 87, previously 3110 06-18 12:00:35.465 13183-13183/? W/ResourceType: ResTable_typeSpec entry count inconsistent: given 1854, previously 1850 06-18 12:00:35.465 13183-13183/? W/ResourceType: ResTable_typeSpec entry count inconsistent: given 157, previously 852 06-18 12:00:35.468 2392-2392/? I/[Gralloc]: alloc w[656] h[468] format[1] usage[2304] 06-18 12:00:35.469 2392-2392/? I/[Gralloc]: alloc succ handle[0x55a6b5fe90] stride[656] 06-18 12:00:35.491 13183-13183/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.503 2392-2392/? I/[Gralloc]: alloc w[656] h[468] format[1] usage[3842] 06-18 12:00:35.505 2392-2392/? I/[Gralloc]: alloc succ handle[0x55a6b60460] stride[656] 06-18 12:00:35.505 13183-13205/? I/flutter: Created the view 06-18 12:00:35.505 13183-13183/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.514 3863-4464/? W/PGApi_client: recv actoionId = 10006, action = com.huawei.pgmng.PGAction@fcc075f actionId =10006 pkg =null extend1 =1102 extend2 = flag =2 type =1 06-18 12:00:35.533 2392-2500/? I/[Gralloc]: alloc w[720] h[48] format[1] usage[3842] 06-18 12:00:35.533 2392-2500/? I/[Gralloc]: alloc succ handle[0x55a6b60e10] stride[720] 06-18 12:00:35.534 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.534 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.534 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.535 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.536 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.536 3497-3497/? I/HwSecImmHelper: mSecurityInputMethodService is null 06-18 12:00:35.561 13183-13183/? E/flutter: [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/me.reddi.core-1/base.apk", zip file "/data/app/me.reddi.core-1/split_config.arm64_v8a.apk", zip file "/data/app/me.reddi.core-1/split_config.en.apk", zip file "/data/app/me.reddi.core-1/split_config.xhdpi.apk"],nativeLibraryDirectories=[/data/app/me.reddi.core-1/lib/arm64, /data/app/me.reddi.core-1/base.apk!/lib/arm64-v8a, /data/app/me.reddi.core-1/split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app/me.reddi.core-1/split_config.en.apk!/lib/arm64-v8a, /data/app/me.reddi.core-1/split_config.xhdpi.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libzoom_stlport.so" at java.lang.Runtime.loadLibrary(Runtime.java:379) at java.lang.System.loadLibrary(System.java:1086) at com.zipow.cmmlib.AppContext.() at i.b.a.p.a() at c.b.a.c.b() at c.b.a.c.a() at e.a.c.a.j$a.a() at io.flutter.embedding.engine.e.b.a() at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage() at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:330) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5621) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684) 06-18 12:00:35.561 13183-13183/? A/flutter: [FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(76)] Check failed: CheckException(env). 06-18 12:00:35.563 3863-26647/? I/PgedBinderListener: kstate callback type:8 value1=13183 value2=KILLED 06-18 12:00:35.563 3863-4425/? I/ash: removeProcessDependency pid:13183 06-18 12:00:35.577 2392-2392/? E/HAL: load: id=gralloc != hmi->id=gralloc 06-18 12:00:35.711 3145-3392/? W/AlarmManager: WAKEUP alarm trigger action = com.google.android.gms.gcm.HEARTBEAT_ALARM elapsed = 11185046 06-18 12:00:35.713 3145-3159/? I/SendBroadcastPermission: action:android.os.action.POWER_SAVE_TEMP_WHITELIST_CHANGED, mPermissionType:0 06-18 12:00:35.923 2406-2406/? E/DEBUG: AM write failed: Broken pipe 06-18 12:00:35.997 3145-3145/? I/SendBroadcastPermission: action:android.intent.action.DROPBOX_ENTRY_ADDED, mPermissionType:0 06-18 12:00:35.997 2742-3075/? I/logserver: handle_logfile_events, Object Path:/data/system/dropbox/, mask=0x00000080 06-18 12:00:35.997 2742-3075/? I/logserver: process_one_event, event->len=48, name=data_app_native_crash@1592474435996.txt 06-18 12:00:35.997 2742-3075/? E/logserver: process_one_event, can not find this event(data_app_native_crash@1592474435996.txt) 06-18 12:00:35.997 2742-3075/? I/logserver: clean_cur_cache:999, system(rm -r /data/log/logcache/-147396304/* > /dev/null 2>&1) 06-18 12:00:36.019 2742-3075/? I/logserver: handle_logfile_events, Object Path:/data/system/dropbox/, mask=0x00000080 06-18 12:00:36.019 2742-3075/? I/logserver: process_one_event, event->len=48, name=SYSTEM_TOMBSTONE@1592474435997.txt.gz 06-18 12:00:36.019 2742-3075/? I/logserver: find_first_match: find match, plogs(type=1, pfile=/data/system/dropbox/, match=TOMBSTONE) 06-18 12:00:36.019 2742-3075/? I/logserver: is_only_tombstone, tombstone type force close. 06-18 12:00:36.026 2742-3075/? I/logserver: is_all_ready, any file is ready in non-keyfile exception. 06-18 12:00:36.026 2742-3075/? I/logserver: find_correspond_tombstone, tombs=/data/tombstones/tombstone_08 06-18 12:00:36.026 2742-3075/? I/logserver: extract_appname, forward search, appname=me.reddi.core 06-18 12:00:36.026 2742-3075/? I/logserver: is_only_tombstone, tombstone type force close. 06-18 12:00:36.026 2742-3075/? I/logserver: archive_and_send, only tombstone. 06-18 12:00:36.026 2742-3075/? I/logserver: get_fault_appname, appname=me.reddi.core 06-18 12:00:36.026 2742-3075/? I/logserver: archive_and_send, pos=0, type=crash, output=20200618120036_tombstone 06-18 12:00:36.026 2742-3075/? I/logserver: ---copy_match_files enter!!-- 06-18 12:00:36.026 2742-3075/? I/logserver: [copy_match_files,864]: copy [/data/system/dropbox/SYSTEM_TOMBSTONE@1592474435997.txt.gz] to [/data/log/logcache/-147396304/SYSTEM_TOMBSTONE@1592474435997.txt.gz] 06-18 12:00:36.026 2742-3075/? I/logserver: get_fault_appname, appname=me.reddi.core 06-18 12:00:36.026 2742-3075/? I/logserver: handle_archive_exception, BASIC_MODE 06-18 12:00:36.027 2742-3075/? I/logserver: remove_last_modify_file, into 1 times, file_dir: 06-18 12:00:36.027 2742-3075/? I/logserver: remove_last_modify_file, into 1 times, file_dir: 06-18 12:00:36.027 2742-3075/? I/logserver: get_disk_available_size, Disk_available = 5099376640 B = 4863 MB 06-18 12:00:36.027 2742-3075/? I/logserver: pack_files, output_path is /data/log/unzip. 06-18 12:00:36.027 2742-3075/? I/logserver: move_input_files, create dir [/data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone] 06-18 12:00:36.028 2742-3075/? I/logserver: handle_archive_exception, into set notify_type 06-18 12:00:36.028 2742-3075/? I/logserver: get_notify_mode, 1 06-18 12:00:36.029 2742-3075/? I/logserver: Process 3075 opened FIFO(12) for O_WRONLY 06-18 12:00:36.029 2742-3075/? I/logserver: notify_logcontrol, 3075 sent /data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone 06-18 12:00:36.029 2742-2742/? I/logserver: process_event 06-18 12:00:36.029 2742-2742/? I/logserver: handle_fifo_msg, read res = 460, client pid = 3075, command = send log, data=/data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone 06-18 12:00:36.029 2742-2742/? I/logserver: handle_fifo_msg, 3075 sent /data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone 06-18 12:00:36.029 2742-3074/? I/logserver: thread_logcontrol: /data/log/logcontrol has changed. 06-18 12:00:36.029 2742-3075/? I/logserver: check_dir_size, dir[/data/log/coredump/] doesn't exist 06-18 12:00:36.029 2742-3075/? I/logserver: clean_cur_cache:999, system(rm -r /data/log/logcache/-147396304/* > /dev/null 2>&1) 06-18 12:00:36.029 2742-3074/? I/logserver: handle_notify_event, send msg [submit:trigger=0,bugtype=12,modulename=me.reddi.core,level=1,testtype=NORMAL,path=/data/log/unzip/ALE-L02_ALE-L02C190B584_0000000000_20200618120036_tombstone,mode=1;] 06-18 12:00:36.029 2742-3074/? I/logserver: send_to_client, send to (9) res = 165 06-18 12:00:36.075 3145-3398/? W/InputDispatcher: channel 'bc5f157 me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 06-18 12:00:36.075 3145-3398/? E/InputDispatcher: channel 'bc5f157 me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 06-18 12:00:36.075 3145-3398/? W/InputDispatcher: channel '9d1f5bc me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 06-18 12:00:36.075 3145-3398/? E/InputDispatcher: channel '9d1f5bc me.reddi.core/me.reddi.coreapp.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 06-18 12:00:36.076 2420-2420/? I/Zygote: Process 13183 exited due to signal (6) 06-18 12:00:36.076 2392-3171/? I/[Gralloc]: alloc w[240] h[428] format[1] usage[819] 06-18 12:00:36.077 2392-3171/? I/[Gralloc]: alloc succ handle[0x55a6b6a950] stride[240] 06-18 12:00:36.078 2392-2392/? E/HAL: load: id=gralloc != hmi->id=gralloc 06-18 12:00:36.088 2392-2392/? E/libEGL: eglDestroySurface: native_window_api_disconnect (win=0x55a6af5540) failed (0xffffffe0) 06-18 12:00:36.088 2392-2392/? W/libEGL: EGLNativeWindowType 0x55a6af5540 disconnect failed 06-18 12:00:36.089 3145-3521/? W/InputDispatcher: Attempted to unregister already unregistered input channel 'bc5f157 me.reddi.core/me.reddi.coreapp.MainActivity (server)' 06-18 12:00:36.098 3145-3940/? W/InputDispatcher: Attempted to unregister already unregistered input channel '9d1f5bc me.reddi.core/me.reddi.coreapp.MainActivity (server)' 06-18 12:00:36.102 3863-4464/? W/PGApi_client: recv actoionId = 10010, action = com.huawei.pgmng.PGAction@69845ac actionId =10010 pkg =com.huawei.android.launcher extend1 =1102 extend2 = flag =3 type =1 06-18 12:00:36.102 3863-4464/? W/PGMiddleWare: in handleAction method, action = 10010 06-18 12:00:36.103 3863-4464/? W/PGMiddleWare: in handleAction, invoke client = com.huawei.pgmng.middleware.AudioEffectLowPowerImpl@d1c5389, action = com.huawei.pgmng.PGAction@69845ac actionId =10010 pkg =com.huawei.android.launcher extend1 =1102 extend2 = flag =3 type =1 06-18 12:00:36.103 2390-2390/? E/lowmemorykiller: Error opening /proc/13183/oom_score_adj; errno=2 06-18 12:00:36.109 3145-3145/? I/SendBroadcastPermission: action:android.intent.action.DROPBOX_ENTRY_ADDED, mPermissionType:0 06-18 12:00:36.121 3563-4140/? I/HwSystemManager: NotificationGuideService:handle MSG_ACTIVIY_FOREGROUND, uid:10052 06-18 12:00:36.129 3919-3919/? I/HwLauncher: Launcher onStart() 06-18 12:00:36.129 3919-3919/? I/HwLauncher: Launcher dynamicIconsRegister 06-18 12:00:36.130 3919-3919/? I/HwLauncher: DynamicUpdater registerReceiver 06-18 12:00:36.136 3145-3156/? E/HsmCoreServiceImpl: onTransact in code is: 102 06-18 12:00:36.136 3145-3156/? I/MediaProcessHandler: processOp opType: 1, uid: 10174, pid: 13183 06-18 12:00:36.136 3145-3156/? W/MediaProcessHandler: remove target not exist, maybe the UI process: uid: 10174, pid: 13183 06-18 12:00:36.155 3919-3919/? I/HwLauncher: DynamicUpdater call updateFolder 06-18 12:00:36.157 3919-3919/? I/HwLauncher: DynamicIcon onResume isvisible = true mAttachedToWindow:false mWindowVisible:falsecom.android.deskclock 06-18 12:00:36.157 3919-3919/? I/HwLauncher: DynamicUpdater registerReceiver 06-18 12:00:36.159 3919-3979/? E/HwLauncher: SettingsEx , no such field. 06-18 12:00:36.160 3919-3979/? W/HwLauncher: Clock getDataFormat the getSystemString failed. 06-18 12:00:36.162 3919-3979/? I/HwLauncher: DynamicIconData , getDrawableForDynamic begin, pkg = com.android.deskclock, picName = deskclock_bg 06-18 12:00:36.163 3919-3979/? I/HwLauncher: DynamicIconData , getDrawableForDynamic end, pkg = com.android.deskclock, picName = deskclock_bg 06-18 12:00:36.166 3919-3979/? I/HwLauncher: ClockDynamicUpdater clock update folder at ClockDynamicUpdater 06-18 12:00:36.166 3919-3979/? I/HwLauncher: DynamicUpdater updateBitmap end and send update message 06-18 12:00:36.170 3145-5691/? I/AccountManagerService: getTypesVisibleToCaller: isPermitted? true 06-18 12:00:36.171 3919-3919/? I/HwLauncher: DynamicUpdater call updateFolder 06-18 12:00:36.171 3919-3979/? I/HwLauncher: WeatherDynamicUpdaterpositiveUpdate at WeatherDynamicUpdater 06-18 12:00:36.171 3919-3919/? I/HwLauncher: DynamicIcon onResume isvisible = true mAttachedToWindow:false mWindowVisible:falsecom.huawei.android.totemweather ```
DzungTNgo commented 4 years ago

Hi,

Could you check if you have added the zoom Proguard content to your Android project? https://github.com/zoom/zoom-sdk-android/blob/master/proguard.cfg

JeanEngelbrecht01 commented 4 years ago

Hi,

I did not add the proguard.cfg

I am a bit new to flutter, would you be able to give me a link to steps to do this or a tutorial?

sudip92 commented 3 years ago

Please add proguard-rules.pro in android > app folder and also use proguard file in build.gradle

buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } }

NightlyRaven commented 3 years ago

Please note that I did follow @sudip92 suggestion but it seems that the release property cannot be found. Do I need to declare it inside the android context? If so, how do I go on to do it?

hipoojan commented 3 years ago

Please add proguard-rules.pro in android > app folder and also use proguard file in build.gradle

buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } }

I have the same issue, I tried after adding the proguard file but it didn't make any difference, the plugin works fine in debug mode, but in release it's just an instant crash on joining a meeting.

hipoojan commented 3 years ago

Found a fix for the issue, no need for proguard, just build with --no-shrink tag, the reason why it works in debug mode is that it's not shrinked

arbyazra123 commented 3 years ago

Hi,

Could you check if you have added the zoom Proguard content to your Android project? https://github.com/zoom/zoom-sdk-android/blob/master/proguard.cfg

hi, but the link is inactive now, there is no page

muhamedRadwan commented 3 years ago

hi, @arbyazra123 did you make zoom integrated as participant inside the flutter app if so I have paid task for you Whatsapp me or email me muhameda.radwan@gmail.com - +201148037467

longld8x commented 3 years ago

Found a fix for the issue, no need for proguard, just build with --no-shrink tag, the reason why it works in debug mode is that it's not shrinked

Tried. It's working :)

hashirventhodi commented 3 years ago

Found a fix for the issue, no need for proguard, just build with --no-shrink tag, the reason why it works in debug mode is that it's not shrinked

Not worked. Any other solution?

omchiii commented 3 years ago

@hashirventhodi No need to build with --no-shrink

your proguard-rules.pro file has to be

-keep class us.zoom.** { *; }
-keep class us.zipow.** { *; }
-keep class com.zipow.** { *; }
-keep class org.webrtc.** { *; }

-dontwarn us.zoom.**
-dontwarn com.zipow.**

Add this to app/build.grade and make sure your proguard-rules.pro file is in the same directory as app level build gradle

buildTypes {
release {
// Add the line below
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig'
}
}