From 41723a52e6eab1e5468f40aaec1b871b6f3df23a Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Wed, 31 Oct 2018 11:32:35 -0500 Subject: [PATCH 1/5] [r8] fixes to building with gradle Context: https://github.com/xamarin/xamarin-android/pull/2019 Since 4bb4b2e, our builds have been failing on VSTS on macOS and Windows. Jenkins is green, however. ~~ macOS ~~ Currently getting a failure building `r8` such as: 2018-10-30T20:19:05.2225960Z * What went wrong: 2018-10-30T20:19:05.2227400Z Could not determine java version from '11.0.1'. So I believe the problem here is that Java 11 is in `$PATH`, and this is only a scenario on the VSTS macOS build agents. It turns out I was able to clean up quite a bit in `r8.targets`: - We don't need to call `SetEnvironmentVariable`, I was able to set `EnvironmentVariables="...;PATH=$(ChromeToolsDirectory)"` and things still worked fine. - We should pass `--stacktrace` to gradle so that we get detailed error messages on a failure. ~~ Windows ~~ Currently getting a failure in `Xamarin.Android.LibraryProjectZip-LibBinding.csproj` such as: 2018-10-31T14:02:28.8336608Z .\gradlew assembleDebug --stacktrace --no-daemon 2018-10-31T14:02:40.7122197Z NDK is missing a "platforms" directory. 2018-10-31T14:02:40.7122937Z If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to C:\Users\dlab14\android-toolchain\sdk\ndk-bundle. 2018-10-31T14:02:40.7124870Z If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning. It doesn't really make sense to me why this started happening with d8/r8 support... The `~\android-toolchain\sdk\ndk-bundle` path seems completely wrong. However, it looks like we should be setting `ANDROID_NDK_HOME=$(AndroidNdkDirectory)`. This is the only other place we are calling `gradle`, so it is somehow *related* to the d8/r8 changes. --- src/r8/r8.targets | 30 ++----------------- ...droid.LibraryProjectZip-LibBinding.targets | 2 +- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/src/r8/r8.targets b/src/r8/r8.targets index fff9a42d62e..e4c249da3a6 100644 --- a/src/r8/r8.targets +++ b/src/r8/r8.targets @@ -1,11 +1,10 @@ - - <_GradleArgs>--no-daemon + <_GradleArgs>--stacktrace --no-daemon ResolveReferences; _BuildR8; @@ -20,26 +19,14 @@ - - <_OriginalPath>$(PATH) - - - @@ -51,25 +38,14 @@ - - <_OriginalPath>$(PATH) - - - diff --git a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets index 41684fc8429..24015142c89 100644 --- a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets +++ b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets @@ -46,7 +46,7 @@ <_Jdk9Modules Condition="$(_JdkVersion.StartsWith ('9'))">JAVA_OPTS="--add-modules java.xml.bind" From b8bb05365a078614f3de95c08e5f49fb0ff3af66 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Wed, 31 Oct 2018 15:49:54 -0500 Subject: [PATCH 2/5] Make buildToolsVersion match what we installed --- .../java/JavaLib/library/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/java/JavaLib/library/build.gradle b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/java/JavaLib/library/build.gradle index 7e19e28a8d2..298f36f7b0d 100644 --- a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/java/JavaLib/library/build.gradle +++ b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/java/JavaLib/library/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 25 - buildToolsVersion "25.0.2" + buildToolsVersion "28.0.0" defaultConfig { minSdkVersion 19 From dedb949aa59cd71738cf167270916f3ea4aa0ede Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Wed, 31 Oct 2018 15:50:24 -0500 Subject: [PATCH 3/5] Update build-tools/android-toolchain/android-toolchain.targets Cleanup use of `$PATH` in `android-toolchain` --- .../android-toolchain/android-toolchain.targets | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/build-tools/android-toolchain/android-toolchain.targets b/build-tools/android-toolchain/android-toolchain.targets index e778180a384..90cf30f8dec 100644 --- a/build-tools/android-toolchain/android-toolchain.targets +++ b/build-tools/android-toolchain/android-toolchain.targets @@ -2,7 +2,6 @@ - ResolveReferences; @@ -69,9 +68,6 @@ DependsOnTargets="_DetermineItems" Inputs="@(_DownloadedItem)" Outputs="@(_SdkStampFiles);$(AndroidToolchainDirectory)\ndk\.stamp-ndk"> - - <_OriginalPath>$(PATH) - @@ -110,15 +106,7 @@ DestinationFolder="$(ChromeToolsDirectory)" /> - - - + Date: Wed, 31 Oct 2018 16:13:07 -0500 Subject: [PATCH 4/5] Update build-tools/android-toolchain/android-toolchain.targets `.\gclient` call needs `JAVA_HOME` --- build-tools/android-toolchain/android-toolchain.targets | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build-tools/android-toolchain/android-toolchain.targets b/build-tools/android-toolchain/android-toolchain.targets index 90cf30f8dec..58e1cb7a10a 100644 --- a/build-tools/android-toolchain/android-toolchain.targets +++ b/build-tools/android-toolchain/android-toolchain.targets @@ -106,7 +106,11 @@ DestinationFolder="$(ChromeToolsDirectory)" /> - + Date: Wed, 31 Oct 2018 16:39:00 -0500 Subject: [PATCH 5/5] ff I will rebase/squash this later... --- build-tools/android-toolchain/android-toolchain.targets | 5 ++++- src/r8/r8.targets | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/build-tools/android-toolchain/android-toolchain.targets b/build-tools/android-toolchain/android-toolchain.targets index 58e1cb7a10a..934fbf27a43 100644 --- a/build-tools/android-toolchain/android-toolchain.targets +++ b/build-tools/android-toolchain/android-toolchain.targets @@ -106,9 +106,12 @@ DestinationFolder="$(ChromeToolsDirectory)" /> + + <_GClientEnv Condition=" '$(JavaSdkDirectory)' != '' ">JAVA_HOME=$(JavaSdkDirectory) + <_GradleArgs>--stacktrace --no-daemon + <_GradleEnv Condition=" '$(JavaSdkDirectory)' != '' ">JAVA_HOME=$(JavaSdkDirectory) ResolveReferences; _BuildR8; @@ -24,8 +25,8 @@ @@ -43,8 +44,8 @@ />