Skip to content

Commit 63e1fa1

Browse files
authored
Update Gradle and Android Plugins (#1244)
* Update Gradle and Android Plugins We can now use a modern Java to build the native libraries. * Just install Java 21 * Update setup-environment.yml * Revert "Update setup-environment.yml" This reverts commit a76a334. * Revert "Just install Java 21" This reverts commit fa09d98. * Try this * ANDROID_HOME * logging * Fix this * Update BUILDING.md * revert versions
1 parent bec7ff4 commit 63e1fa1

File tree

30 files changed

+128
-113
lines changed

30 files changed

+128
-113
lines changed

.github/workflows/copilot-setup-steps.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ jobs:
1818
- name: Install Android workload
1919
run: dotnet workload install android
2020

21-
- name: Setup OpenJDK 11
21+
- name: Setup OpenJDK 21
2222
uses: actions/setup-java@v4
2323
with:
2424
distribution: 'microsoft'
25-
java-version: '11'
25+
java-version: '21'
2626

2727
- name: Restore dotnet tools
2828
run: dotnet tool restore
@@ -58,6 +58,7 @@ jobs:
5858
echo ".NET Version: $(dotnet --version)"
5959
echo "Java Version: $(java -version 2>&1 | head -1)"
6060
echo "Android SDK Root: $ANDROID_SDK_ROOT"
61+
echo "Android Home: $ANDROID_HOME"
6162
echo "Java Home: $JAVA_HOME"
6263
echo "=== Installed Workloads ==="
6364
dotnet workload list

BUILDING.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@ Before building the libraries and samples in this repository, you will need to i
1212
dotnet tool install -g cake.tool
1313
```
1414
15-
* [Microsoft OpenJDK *11*](https://learn.microsoft.com/en-us/java/openjdk/download#openjdk-11)
16-
(JDK-17 is not currently supported).
15+
* [Microsoft OpenJDK *21*](https://learn.microsoft.com/en-us/java/openjdk/download#openjdk-21)
1716
18-
The `javac` from your JDK 11 installation must be *first* in `$PATH`/`%PATH%`.
17+
The `javac` from your JDK 21 installation must be *first* in `$PATH`/`%PATH%`.
1918
2019
* The [Android SDK](https://developer.android.com/studio), and the
2120
`ANDROID_SDK_ROOT` environment variable set to the Android SDK location.

build/cake/build-and-package.cake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ void BuildGradleProject (string root, string outputDir, bool moveFile)
9292
void RunGradle (DirectoryPath root, string target)
9393
{
9494
root = MakeAbsolute (root);
95+
96+
Information($"Running Gradle {target} in {root}");
9597

9698
var proc = IsRunningOnWindows ()
9799
? root.CombineWithFilePath ("gradlew.bat").FullPath
@@ -102,6 +104,8 @@ void RunGradle (DirectoryPath root, string target)
102104

103105
args += $" {target} -p {root}";
104106

107+
Information($"Running {proc} {args}");
108+
105109
var exitCode = StartProcess (proc, args);
106110

107111
if (exitCode != 0)

build/ci/build-and-test.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ parameters:
88

99
steps:
1010
- pwsh: |
11+
Get-Content $PSCommandPath
1112
dotnet cake build.cake `
1213
--target=ci-build `
1314
--configuration="$(configuration)" `
@@ -21,12 +22,14 @@ steps:
2122
RepositoryType: "git"
2223
2324
- pwsh: |
25+
Get-Content $PSCommandPath
2426
dotnet cake validation.cake `
2527
--namespaces="${{ join(',', parameters.validPackagePrefixes) }}" `
2628
--verbosity="$(verbosity)"
2729
displayName: 'Run NuGet package validation'
2830
2931
- pwsh: |
32+
Get-Content $PSCommandPath
3033
dotnet cake nuget-diff.cake `
3134
--artifacts="${{ parameters.artifactsPath }}" `
3235
--output="${{ parameters.artifactsPath }}/api-diff" `
@@ -35,10 +38,13 @@ steps:
3538
displayName: 'Generate API diff'
3639
condition: eq(variables['Agent.OS'], 'Windows_NT')
3740
38-
- pwsh: dotnet cake utilities.cake -t=verify-namespace-file
41+
- pwsh: |
42+
Get-Content $PSCommandPath
43+
dotnet cake utilities.cake -t=verify-namespace-file
3944
displayName: Verify published namespaces
4045
4146
- pwsh: |
47+
Get-Content $PSCommandPath
4248
dotnet cake build.cake `
4349
--target=ci-samples `
4450
--configuration="$(configuration)" `

build/ci/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151

5252
# Copy SignList.xml to output
5353
- pwsh: |
54+
Get-Content $PSCommandPath
5455
$srcExists = (Test-Path "${{ parameters.signListPath }}")
5556
$dstExists = (Test-Path "${{ parameters.artifactsPath }}\SignList.xml")
5657
if ($srcExists -and !$dstExists) {

build/ci/job-extended-tests.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ jobs:
3636
arguments: -c $(configuration)
3737

3838
# Figure out which tests this slice is running
39-
- pwsh: >-
40-
dotnet dotnet-test-slicer
41-
slice
42-
--test-assembly="${{ parameters.testAssembly }}"
43-
--test-filter="${{ parameters.testFilter }}"
44-
--slice-number=$(System.JobPositionInPhase)
45-
--total-slices=$(System.TotalJobsInPhase)
46-
--outfile="${{ parameters.testAssembly }}.runsettings"
39+
- pwsh: |
40+
Get-Content $PSCommandPath
41+
dotnet dotnet-test-slicer slice `
42+
--test-assembly="${{ parameters.testAssembly }}" `
43+
--test-filter="${{ parameters.testFilter }}" `
44+
--slice-number=$(System.JobPositionInPhase) `
45+
--total-slices=$(System.TotalJobsInPhase) `
46+
--outfile="${{ parameters.testAssembly }}.runsettings"
4747
displayName: Slice unit tests
4848
failOnStderr: true
4949

build/ci/setup-environment.yml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
parameters:
22
installAndroidDependencies: false
33
androidSdkRoot: $(Agent.TempDirectory)/android-sdk
4-
javaSdkRoot: $(Agent.ToolsDirectory)\jdk11
4+
javaSdkRoot: $(Agent.ToolsDirectory)\jdk21
55

66
steps:
77
# before the build starts, make sure the tooling is as expected. Clear the cache on shared agents
@@ -46,18 +46,18 @@ steps:
4646
4747
- bash: |
4848
if [[ "$(Agent.Name)" == *"Azure Pipelines"* ]]; then
49-
echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_11_X64)"
49+
echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_21_X64)"
5050
else
51-
echo "##vso[task.setvariable variable=JAVA_HOME]/Library/Java/JavaVirtualMachines/microsoft-11.jdk/Contents/Home"
51+
echo "##vso[task.setvariable variable=JAVA_HOME]/Library/Java/JavaVirtualMachines/microsoft-21.jdk/Contents/Home"
5252
fi
53-
displayName: Use Java 11 SDK (Mac)
53+
displayName: Use Java 21 SDK (Mac)
5454
condition: eq( variables['Agent.OS'], 'Darwin' )
5555
5656
- task: JavaToolInstaller@0
57-
displayName: Use Java 11 SDK (Windows)
57+
displayName: Use Java 21 SDK (Windows)
5858
condition: and(eq( variables['Agent.OS'], 'Windows_NT' ), ne(${{ parameters.installAndroidDependencies }}, true))
5959
inputs:
60-
versionSpec: '11'
60+
versionSpec: '21'
6161
jdkArchitectureOption: 'x64'
6262
jdkSourceOption: 'PreInstalled'
6363

@@ -86,26 +86,27 @@ steps:
8686
- pwsh: |
8787
Write-Host "##vso[task.setvariable variable=AndroidSdkDirectory]${{ parameters.androidSdkRoot }}"
8888
Write-Host "##vso[task.setvariable variable=ANDROID_SDK_ROOT]${{ parameters.androidSdkRoot }}"
89-
displayName: Set ANDROID_SDK_ROOT to ${{ parameters.androidSdkRoot }}
89+
Write-Host "##vso[task.setvariable variable=ANDROID_HOME]${{ parameters.androidSdkRoot }}"
90+
displayName: Set ANDROID_SDK_ROOT and ANDROID_HOME to ${{ parameters.androidSdkRoot }}
9091
9192
- ${{ if eq(parameters.installAndroidDependencies, true) }}:
9293
- pwsh: |
93-
$url = "https://aka.ms/download-jdk/microsoft-jdk-11.0.26-windows-x64.zip"
94+
$url = "https://aka.ms/download-jdk/microsoft-jdk-21.0.8-windows-x64.zip"
9495
if ($IsMacOS) {
95-
$url = "https://aka.ms/download-jdk/microsoft-jdk-11.0.26-macos-x64.tar.gz"
96+
$url = "https://aka.ms/download-jdk/microsoft-jdk-21.0.8-macos-x64.tar.gz"
9697
}
9798
$fileName = [System.IO.Path]::GetFileName($url)
9899
Invoke-WebRequest -Uri $url -OutFile $fileName
99-
Write-Host "##vso[task.setvariable variable=JDK_11_FILE_PATH]$(Build.StagingDirectory)/$fileName"
100-
displayName: Download Java 11 SDK
100+
Write-Host "##vso[task.setvariable variable=JDK_21_FILE_PATH]$(Build.StagingDirectory)/$fileName"
101+
displayName: Download Java 21 SDK
101102
workingDirectory: $(Build.StagingDirectory)
102103
103104
- task: JavaToolInstaller@0
104-
displayName: Use Java 11 SDK
105+
displayName: Use Java 21 SDK
105106
inputs:
106-
versionSpec: '11'
107+
versionSpec: '21'
107108
jdkArchitectureOption: 'x64'
108109
jdkSourceOption: LocalDirectory
109-
jdkFile: $(JDK_11_FILE_PATH)
110+
jdkFile: $(JDK_21_FILE_PATH)
110111
jdkDestinationDirectory: ${{ parameters.javaSdkRoot }}
111112
cleanDestinationDirectory: true

published-namespaces.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,8 +1367,6 @@ Xamarin.Google.Android.DataTransport.Runtime.Time
13671367
Xamarin.Google.Android.DataTransport.Runtime.Util
13681368
Xamarin.Google.Android.Finsky.ExternalReferrer
13691369
Xamarin.Google.Android.Odml.Image
1370-
Xamarin.Google.Android.Play.Asset.Delivery
1371-
Xamarin.Google.Android.Play.Core
13721370
Xamarin.Google.Android.Play.Core.AppUpdate
13731371
Xamarin.Google.Android.Play.Core.AppUpdate.Install
13741372
Xamarin.Google.Android.Play.Core.AppUpdate.Install.Model
@@ -1391,7 +1389,6 @@ Xamarin.Google.Android.Play.Core.SplitInstall
13911389
Xamarin.Google.Android.Play.Core.SplitInstall.Model
13921390
Xamarin.Google.Android.Play.Core.SplitInstall.Testing
13931391
Xamarin.Google.Android.Play.Core.Tasks
1394-
Xamarin.Google.Android.Play.Feature.Delivery
13951392
Xamarin.Google.Android.Recaptcha
13961393
Xamarin.Google.Crypto.Tink
13971394
Xamarin.Google.Crypto.Tink.Aead

source/com.google.android.material/material.extensions/app/build.gradle

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 29
5-
buildToolsVersion "29.0.3"
4+
namespace 'com.xamarin.google.android.material.extensions.app'
5+
compileSdk 34
66

77
defaultConfig {
88
applicationId "com.xamarin.google.android.material.extensions.app"
9-
minSdkVersion 16
10-
targetSdkVersion 29
9+
minSdk 21
10+
targetSdk 34
1111
versionCode 1
1212
versionName "1.0"
1313

@@ -20,7 +20,11 @@ android {
2020
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
2121
}
2222
}
23-
23+
24+
compileOptions {
25+
sourceCompatibility JavaVersion.VERSION_1_8
26+
targetCompatibility JavaVersion.VERSION_1_8
27+
}
2428
}
2529

2630
dependencies {

source/com.google.android.material/material.extensions/app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.xamarin.google.android.material.extensions.app">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
43

54
<application
65
android:allowBackup="true"
@@ -9,7 +8,8 @@
98
android:roundIcon="@mipmap/ic_launcher_round"
109
android:supportsRtl="true"
1110
android:theme="@style/AppTheme">
12-
<activity android:name=".MainActivity">
11+
<activity android:name=".MainActivity"
12+
android:exported="true">
1313
<intent-filter>
1414
<action android:name="android.intent.action.MAIN" />
1515

0 commit comments

Comments
 (0)