From eb7c8456ecf1537b38bd87bfe7042bdfc690f055 Mon Sep 17 00:00:00 2001 From: Bruno Bowden Date: Tue, 27 Oct 2020 21:17:59 -0700 Subject: [PATCH 1/3] Target Java 8 for all plugins with -Werror compiler arg PROBLEM: Upgrading to Java 12 will cause the following innocuous warnings to become build failures due to the "-Werror" flag: ``` > Task :connectivity:compileReleaseJavaWithJavac FAILED warning: [options] source value 7 is obsolete and will be removed in a future release warning: [options] target value 7 is obsolete and will be removed in a future release warning: [options] To suppress warnings about obsolete options, use -Xlint:-options. error: warnings found and -Werror specified FAILURE: Build failed with an exception. ``` Example: https://github.com/WorldHealthOrganization/app/runs/1318596280 FIX: Target Java 8 for all plugins that use the `-Werror` compiler argument: ``` android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } ``` The plugins were all found with: ``` $ find . -name build.gradle | xargs grep Werror ./packages/connectivity/connectivity/android/build.gradle:def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] ./packages/camera/android/build.gradle:def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] ./packages/video_player/video_player/android/build.gradle:def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] ./packages/android_alarm_manager/android/build.gradle:def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] ./packages/android_intent/android/build.gradle:def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] ``` I think the config was broken for video_player. Also updated a few example apps too. WORKAROUND: As a temporary workaround, developers can downgrade to Java 11 which doesn't warn that Java 7 is obsolete. Example: https://github.com/WorldHealthOrganization/app/pull/1669/files#diff-710a4407aba47ffddf61ee9be9490428d5d0883759b18e490858db28e1ace4afR86 REGRESSION: @hamdikahloun - thanks for your work on the Connectivity package. Adding `-Werror` flags is a positive thing but I think is best combined with Java 8 to ensure that the warning don't become error. Your PR: https://github.com/flutter/plugins/pull/3051 FYI @mehmetf, @Salakar, @bkonyi, @ened, @dnfield as you've all edited Java 8 targets --- packages/android_alarm_manager/android/build.gradle | 8 ++++---- packages/android_intent/android/build.gradle | 4 ++++ packages/camera/android/build.gradle | 4 ++-- .../connectivity/connectivity/android/build.gradle | 4 ++++ .../path_provider/path_provider/android/build.gradle | 8 +++----- .../video_player/video_player/android/build.gradle | 8 +++----- .../video_player/example/android/app/build.gradle | 11 ++++------- 7 files changed, 24 insertions(+), 23 deletions(-) diff --git a/packages/android_alarm_manager/android/build.gradle b/packages/android_alarm_manager/android/build.gradle index 5bbaf2291994..cfbb8bfd1da9 100644 --- a/packages/android_alarm_manager/android/build.gradle +++ b/packages/android_alarm_manager/android/build.gradle @@ -28,10 +28,6 @@ apply plugin: 'com.android.library' android { compileSdkVersion 29 - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } defaultConfig { minSdkVersion 16 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -39,6 +35,10 @@ android { lintOptions { disable 'InvalidPackage' } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } dependencies { diff --git a/packages/android_intent/android/build.gradle b/packages/android_intent/android/build.gradle index d7120919d654..32f447129cfc 100644 --- a/packages/android_intent/android/build.gradle +++ b/packages/android_intent/android/build.gradle @@ -36,6 +36,10 @@ android { lintOptions { disable 'InvalidPackage' } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } testOptions { unitTests.includeAndroidResources = true } diff --git a/packages/camera/android/build.gradle b/packages/camera/android/build.gradle index d19d6df7b447..ff06e45b048a 100644 --- a/packages/camera/android/build.gradle +++ b/packages/camera/android/build.gradle @@ -37,8 +37,8 @@ android { disable 'InvalidPackage' } compileOptions { - sourceCompatibility = '1.8' - targetCompatibility = '1.8' + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } dependencies { implementation 'androidx.annotation:annotation:1.0.0' diff --git a/packages/connectivity/connectivity/android/build.gradle b/packages/connectivity/connectivity/android/build.gradle index e1982a03cf09..2397a7dff89a 100644 --- a/packages/connectivity/connectivity/android/build.gradle +++ b/packages/connectivity/connectivity/android/build.gradle @@ -36,4 +36,8 @@ android { lintOptions { disable 'InvalidPackage' } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } diff --git a/packages/path_provider/path_provider/android/build.gradle b/packages/path_provider/path_provider/android/build.gradle index 9659efbc03d2..cda2dab3e5ab 100644 --- a/packages/path_provider/path_provider/android/build.gradle +++ b/packages/path_provider/path_provider/android/build.gradle @@ -31,11 +31,9 @@ android { lintOptions { disable 'InvalidPackage' } - android { - compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 - } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } } diff --git a/packages/video_player/video_player/android/build.gradle b/packages/video_player/video_player/android/build.gradle index 08a240bfe3f7..b13b3fbb9d9f 100644 --- a/packages/video_player/video_player/android/build.gradle +++ b/packages/video_player/video_player/android/build.gradle @@ -36,11 +36,9 @@ android { lintOptions { disable 'InvalidPackage' } - android { - compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 - } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } dependencies { diff --git a/packages/video_player/video_player/example/android/app/build.gradle b/packages/video_player/video_player/example/android/app/build.gradle index 13fabc7554e9..17ee36763bd0 100644 --- a/packages/video_player/video_player/example/android/app/build.gradle +++ b/packages/video_player/video_player/example/android/app/build.gradle @@ -30,6 +30,10 @@ android { lintOptions { disable 'InvalidPackage' } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } defaultConfig { applicationId "io.flutter.plugins.videoplayerexample" @@ -40,13 +44,6 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } - android { - compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 - } - } - buildTypes { release { // TODO: Add your own signing config for the release build. From 463de7b181a841d0ecba48c00d6240a6d0995af7 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Tue, 25 May 2021 10:54:07 -0400 Subject: [PATCH 2/3] Add version bump to video_player --- packages/video_player/video_player/CHANGELOG.md | 4 ++++ packages/video_player/video_player/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index c40faab2e1c6..02ee84f1e168 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.1.4 + +* Specify Java 8 for Android build. + ## 2.1.3 * Fix pointer value to boolean conversion analyzer warnings. diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index a63803d21eaf..0587dd4892b7 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for displaying inline video with other Flutter widgets on Android, iOS, and web. repository: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.1.3 +version: 2.1.4 environment: sdk: ">=2.12.0 <3.0.0" From d092d0d5960a8acdda3a45785f9812de7e750506 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Wed, 15 Sep 2021 11:40:05 -0400 Subject: [PATCH 3/3] Add version bumps/changelogs --- packages/android_intent/CHANGELOG.md | 1 + packages/connectivity/connectivity/CHANGELOG.md | 1 + packages/path_provider/path_provider/CHANGELOG.md | 3 ++- packages/path_provider/path_provider/pubspec.yaml | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/android_intent/CHANGELOG.md b/packages/android_intent/CHANGELOG.md index 82cd5db3e4e4..79eafe70e821 100644 --- a/packages/android_intent/CHANGELOG.md +++ b/packages/android_intent/CHANGELOG.md @@ -2,6 +2,7 @@ * Remove references to the V1 Android embedding. * Updated Android lint settings. +* Specify Java 8 for Android build. ## 2.0.2 diff --git a/packages/connectivity/connectivity/CHANGELOG.md b/packages/connectivity/connectivity/CHANGELOG.md index f5489692bee9..932565842efd 100644 --- a/packages/connectivity/connectivity/CHANGELOG.md +++ b/packages/connectivity/connectivity/CHANGELOG.md @@ -2,6 +2,7 @@ * Remove references to the Android V1 embedding. * Updated Android lint settings. +* Specify Java 8 for Android build. ## 3.0.6 diff --git a/packages/path_provider/path_provider/CHANGELOG.md b/packages/path_provider/path_provider/CHANGELOG.md index ba7bb3dc7ada..f3f3b2e4da12 100644 --- a/packages/path_provider/path_provider/CHANGELOG.md +++ b/packages/path_provider/path_provider/CHANGELOG.md @@ -1,6 +1,7 @@ -## NEXT +## 2.0.4 * Updated Android lint settings. +* Specify Java 8 for Android build. ## 2.0.3 diff --git a/packages/path_provider/path_provider/pubspec.yaml b/packages/path_provider/path_provider/pubspec.yaml index 10352e44c452..febfef516f85 100644 --- a/packages/path_provider/path_provider/pubspec.yaml +++ b/packages/path_provider/path_provider/pubspec.yaml @@ -2,7 +2,7 @@ name: path_provider description: Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories. repository: https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22 -version: 2.0.3 +version: 2.0.4 environment: sdk: ">=2.12.0 <3.0.0"