Issue 1:
According to the comments on the signIn() function in google_sign_in.dart, if the user cancels the sign in process, then null should be returned.

However, cancelling the sign-in on android currently throws a Platform Exception containing generic error messages that do not indicate the request was cancelled.

I/flutter ( 9795): PlatformException(sign_in_failed, Status{statusCode=ERROR, resolution=null}, null)

This makes it hard to differentiate request cancellation from a generic sign in failure, for the purpose of showing a retry snackbar / dialog for example.

Using google_sign_in 3.0.6

Steps to Reproduce

Run Google Sign In example app on physical Android device (tested on Galaxy S8) from plugins/packages/google_sign_in/example

Press Sign In button to launch google sign in account selector dialog

Press system back button to dismiss dialog

Generic platform exception is thrown

Logs

[+32164 ms] D/ViewRootImpl@2fdd086[MainActivity]( 9795): ViewPostIme pointer 0
[ +63 ms] D/ViewRootImpl@2fdd086[MainActivity]( 9795): ViewPostIme pointer 1
[ +297 ms] D/ViewRootImpl@2fdd086[MainActivity]( 9795): MSG_WINDOW_FOCUS_CHANGED 0
[ +55 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): setView = DecorView@52da61a[SignInHubActivity] TM=true MM=false
[ +1 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): dispatchAttachedToWindow
[ +15 ms] V/Surface ( 9795): sf_framedrop debug : 0x4f4c, game : false, logging : 0
[ +1 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): Relayout returned: old=[0,0][0,0] new=[0,0][1080,2076] result=0x7 surface={valid=true 493536477184} changed=true
[ +23 ms] D/mali_winsys( 9795): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000, [1080x2076]-format:1
[ ] D/OpenGLRenderer( 9795): eglCreateWindowSurface = 0x72f0dfb630
[ +25 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): MSG_RESIZED_REPORT: frame=Rect(0, 0 - 1080, 2076) ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1
[ ] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): MSG_WINDOW_FOCUS_CHANGED 1
[ +1 ms] V/InputMethodManager( 9795): Starting input: tba=android.view.inputmethod.EditorInfo@9f4db28 nm : io.flutter.plugins.googlesigninexample ic=null
[ ] I/InputMethodManager( 9795): startInputInner - mService.startInputOrWindowGainedFocus
[ +83 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): MSG_WINDOW_FOCUS_CHANGED 0
[+4342 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): MSG_WINDOW_FOCUS_CHANGED 1
[ ] V/InputMethodManager( 9795): Starting input: tba=android.view.inputmethod.EditorInfo@a1de740 nm : io.flutter.plugins.googlesigninexample ic=null
[ ] I/InputMethodManager( 9795): startInputInner - mService.startInputOrWindowGainedFocus
[ +47 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): MSG_WINDOW_FOCUS_CHANGED 0
[ +2 ms] D/ViewRootImpl@2fdd086[MainActivity]( 9795): MSG_WINDOW_FOCUS_CHANGED 1
[ +13 ms] V/InputMethodManager( 9795): Starting input: tba=android.view.inputmethod.EditorInfo@6b12679 nm : io.flutter.plugins.googlesigninexample ic=null
[ ] I/InputMethodManager( 9795): startInputInner - mService.startInputOrWindowGainedFocus
[ +1 ms] I/flutter ( 9795): PlatformException(sign_in_failed, Status{statusCode=ERROR, resolution=null}, null)
[ +16 ms] D/OpenGLRenderer( 9795): eglDestroySurface = 0x72f0dfb630
[ +6 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): Relayout returned: old=[0,0][1080,2076] new=[0,0][1080,2076] result=0x5 surface={valid=false 0} changed=true
[ +6 ms] D/ViewRootImpl@3be0cc5[SignInHubActivity]( 9795): dispatchDetachedFromWindow
[ ] D/InputEventReceiver( 9795): channel 'd2e145a io.flutter.plugins.googlesigninexample/com.google.android.gms.auth.api.signin.internal.SignInHubActivity (client)' ~ Disposing input event receiver.
[ ] D/InputEventReceiver( 9795): channel 'd2e145a io.flutter.plugins.googlesigninexample/com.google.android.gms.auth.api.signin.internal.SignInHubActivity (client)' ~NativeInputEventReceiver.

Flutter Doctor

[√] Flutter (Channel beta, v0.6.0, on Microsoft Windows [Version 10.0.17134.285], locale en-AU)
• Flutter version 0.6.0 at C:\flutter
• Framework revision 9299c02cf7 (5 weeks ago), 2018-08-16 00:35:12 +0200
• Engine revision e3687f70c7
• Dart version 2.1.0-dev.0.0.flutter-be6309690f

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at C:\Users\t\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-27, build-tools 27.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
• All Android licenses accepted.

[√] Android Studio (version 3.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 27.1.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] Connected devices (1 available)
• SM G950F • ce03171315f2833503 • android-arm64 • Android 8.0.0 (API 26)

• No issues found!

Issue 2:
Steps to Reproduce

add minifyEnabled true on https://github.com/flutter/flutter/blob/master/examples/platform_view/android/app/build.gradle#L37 like

buildTypes {
release {
signingConfig signingConfigs.debug
minifyEnabled true
}
}

then run flutter run --release,App crash just after opened.

output[FATAL:flutter/shell/platform/android/library_loader.cc(24)] Check failed: result.'

Logs

C:\Users\xmumi\code\git\flutter\examples\platform_view>flutter run --release
Initializing gradle... 1.0s
Resolving dependencies... 1.3s
Launching lib/main.dart on M571C in release mode...
Running 'gradlew assembleRelease'...
Skipping AOT snapshot build. Fingerprint match.
ProGuard, version 5.3.3
Reading input...
Reading program jar [C:\Users\xmumi\code\git\flutter\bin\cache\artifacts\engine\android-arm64-release\flutter.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\design-26.1.0.aar\e1e18a0d55533e22582e5d66814fa378\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\8a36870eb069f9b17d7eca45254479c0\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\animated-vector-drawable-26.1.0.aar\3eb98d0fa211b2ec7493e17508b8cac2\jars\classes.jar] (filtere
d)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-vector-drawable-26.1.0.aar\5790a1eafd003c5a7e8c2f35e2c659f6\jars\classes.jar] (filtered
)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\recyclerview-v7-26.1.0.aar\014869eb51bd77ea2147359fd620fc6a\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\transition-26.1.0.aar\9c86f0b7891a7e79bd3567b508140f7a\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-v4-26.1.0.aar\fec47507362c90811cba92ffff106839\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-media-compat-26.1.0.aar\7806ae09fbdcc4da24c6b7551c17dc83\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-fragment-26.1.0.aar\c9a6a29f167a9d655502088d011c7118\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-core-utils-26.1.0.aar\eb0df28e3ab0b8671425749e9c63ce17\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-core-ui-26.1.0.aar\5cd1748d156b6c4a233fc3b1b959d167\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-compat-26.1.0.aar\4fb8ae07ada951def3fe6d031b8d566f\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\modules-2\files-2.1\com.android.support\support-annotations\26.1.0\814258103cf26a15fcc26ecce35f5b7d24b73f8\support-ann
otations-26.1.0.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\runtime-1.0.0.aar\f42bea44c906e2564f07d7de0dd4f0ea\jars\classes.jar] (filtered)
Reading program jar [C:\Users\xmumi\.gradle\caches\modules-2\files-2.1\android.arch.lifecycle\common\1.0.0\e414a4cb28434e25c4f6aa71426eb20cf4874ae9\common-1.0.0.jar] (fi
ltered)
Reading program jar [C:\Users\xmumi\.gradle\caches\modules-2\files-2.1\android.arch.core\common\1.0.0\a2d487452376193fc8c103dd2b9bd5f2b1b44563\common-1.0.0.jar] (filtere
d)
Reading program directory [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\intermediates\classes\release] (filtered)
Reading program jar [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\intermediates\transforms\mergeJavaRes\release\0.jar] (filtered)
Reading library jar [C:\Users\xmumi\AppData\Local\Android\sdk\platforms\android-27\android.jar]
Reading library jar [C:\Users\xmumi\AppData\Local\Android\sdk\platforms\android-27\optional\org.apache.http.legacy.jar]
Note: duplicate definition of library class [org.apache.http.params.HttpParams]
Note: duplicate definition of library class [org.apache.http.params.HttpConnectionParams]
Note: duplicate definition of library class [org.apache.http.params.CoreConnectionPNames]
Note: duplicate definition of library class [org.apache.http.conn.ConnectTimeoutException]
Note: duplicate definition of library class [org.apache.http.conn.scheme.LayeredSocketFactory]
Note: duplicate definition of library class [org.apache.http.conn.scheme.HostNameResolver]
Note: duplicate definition of library class [org.apache.http.conn.scheme.SocketFactory]
Note: duplicate definition of library class [android.net.http.SslCertificate$DName]
Note: duplicate definition of library class [android.net.http.SslError]
Note: duplicate definition of library class [android.net.http.SslCertificate]
Note: duplicate definition of library class [android.net.http.HttpResponseCache]
Note: there were 11 duplicate class definitions.
(http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Initializing...
Ignoring unused library classes...
Original number of library classes: 4610
Final number of library classes: 1108
Printing kept classes, fields, and methods...
Shrinking...
Printing usage to [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\outputs\mapping\release\usage.txt]...
Removing unused program classes and class elements...
Original number of program classes: 2221
Final number of program classes: 991
Inlining subroutines...
Obfuscating...
Printing mapping to [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\outputs\mapping\release\mapping.txt]...
Preverifying...
Writing output...
Preparing output jar [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\intermediates\transforms\proguard\release\0.jar]
Copying resources from program jar [C:\Users\xmumi\code\git\flutter\bin\cache\artifacts\engine\android-arm64-release\flutter.jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\design-26.1.0.aar\e1e18a0d55533e22582e5d66814fa378\jars\classes.jar] (filtered
)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\8a36870eb069f9b17d7eca45254479c0\jars\classes.jar] (fi
ltered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\animated-vector-drawable-26.1.0.aar\3eb98d0fa211b2ec7493e17508b8cac2\jars\clas
ses.jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-vector-drawable-26.1.0.aar\5790a1eafd003c5a7e8c2f35e2c659f6\jars\class
es.jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\recyclerview-v7-26.1.0.aar\014869eb51bd77ea2147359fd620fc6a\jars\classes.jar]
(filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\transition-26.1.0.aar\9c86f0b7891a7e79bd3567b508140f7a\jars\classes.jar] (filt
ered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-v4-26.1.0.aar\fec47507362c90811cba92ffff106839\jars\classes.jar] (filt
ered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-media-compat-26.1.0.aar\7806ae09fbdcc4da24c6b7551c17dc83\jars\classes.
jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-fragment-26.1.0.aar\c9a6a29f167a9d655502088d011c7118\jars\classes.jar]
(filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-core-utils-26.1.0.aar\eb0df28e3ab0b8671425749e9c63ce17\jars\classes.ja
r] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-core-ui-26.1.0.aar\5cd1748d156b6c4a233fc3b1b959d167\jars\classes.jar]
(filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\support-compat-26.1.0.aar\4fb8ae07ada951def3fe6d031b8d566f\jars\classes.jar] (
filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\modules-2\files-2.1\com.android.support\support-annotations\26.1.0\814258103cf26a15fcc26ecce35f5b7d24
b73f8\support-annotations-26.1.0.jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\transforms-1\files-1.1\runtime-1.0.0.aar\f42bea44c906e2564f07d7de0dd4f0ea\jars\classes.jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\modules-2\files-2.1\android.arch.lifecycle\common\1.0.0\e414a4cb28434e25c4f6aa71426eb20cf4874ae9\common-1.0.0.jar] (filtered)
Copying resources from program jar [C:\Users\xmumi\.gradle\caches\modules-2\files-2.1\android.arch.core\common\1.0.0\a2d487452376193fc8c103dd2b9bd5f2b1b44563\common-1.0.0.jar] (filtered)
Copying resources from program directory [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\intermediates\classes\release] (filtered)
Copying resources from program jar [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\intermediates\transforms\mergeJavaRes\release\0.jar] (filtered)
Printing classes to [C:\Users\xmumi\code\git\flutter\examples\platform_view\build\app\outputs\mapping\release\dump.txt]...
Built build\app\outputs\apk\release\app-release.apk (9.1MB).
Installing build\app\outputs\apk\app.apk... 24.5s
F/flutter (24771): [FATAL:flutter/shell/platform/android/library_loader.cc(24)] Check failed: result.

To repeat this help message, press "h". To quit, press "q".
F/flutter (24795): [FATAL:flutter/shell/platform/android/library_loader.cc(24)] Check failed: result.
F/flutter (24817): [FATAL:flutter/shell/platform/android/library_loader.cc(24)] Check failed: result.

Run flutter analyze and attach any output of that command also.

C:\Users\xmumi\code\git\flutter\examples\platform_view>flutter analyze
Analyzing 1409 files...
[warning] The method 'encodePng' isn't defined for the class 'Upload'. (C:\Users\xmumi\code\git\flutter\dev\devicelab\lib\tasks\save_catalog_screenshots.dart, line 83, col 20)
[warning] The method 'decodePng' isn't defined for the class 'Upload'. (C:\Users\xmumi\code\git\flutter\dev\devicelab\lib\tasks\save_catalog_screenshots.dart, line 83, col 41)
[warning] The method 'copyResize' isn't defined for the class 'Upload'. (C:\Users\xmumi\code\git\flutter\dev\devicelab\lib\tasks\save_catalog_screenshots.dart, line 83, col 30)
[error] Target of URI doesn't exist: 'package:image/image.dart'. (C:\Users\xmumi\code\git\flutter\dev\devicelab\lib\tasks\save_catalog_screenshots.dart, line 10, col 8)
[warning] The function 'decodePng' isn't defined. (C:\Users\xmumi\code\git\flutter\dev\integration_tests\ui\test_driver\screenshot_test.dart, line 28, col 27)
[warning] Undefined class 'Image'. (C:\Users\xmumi\code\git\flutter\dev\integration_tests\ui\test_driver\screenshot_test.dart, line 32, col 15)
[warning] Undefined class 'Image'. (C:\Users\xmumi\code\git\flutter\dev\integration_tests\ui\test_driver\screenshot_test.dart, line 28, col 7)
[warning] The function 'decodePng' isn't defined. (C:\Users\xmumi\code\git\flutter\dev\integration_tests\ui\test_driver\screenshot_test.dart, line 32, col 34)
[error] Target of URI doesn't exist: 'package:image/image.dart'. (C:\Users\xmumi\code\git\flutter\dev\integration_tests\ui\test_driver\screenshot_test.dart, line 6, col 8)
(Ran in 46.1s)

Flutter Doctor

C:\Users\xmumi\code\git\flutter\examples\platform_view>Flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.1.5, on Microsoft Windows [Version 10.0.16299.125], locale zh-CN)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.0)
[√] Android Studio (version 3.1)
[√] Android Studio (version 3.2)
[√] IntelliJ IDEA Community Edition (version 2017.3)
[√] VS Code (version 1.20.1)
[√] Connected devices (1 available)

• No issues found!