From 62f976b1d88a450b964610ce4b71c57bc1c4b2ba Mon Sep 17 00:00:00 2001 From: Carter Jernigan Date: Tue, 17 May 2022 06:07:22 -0400 Subject: [PATCH] [#431] Switch to Adoptium JDK Temurin/Adoptium is the default used by Gradle toolchains, and they now have both Java 11 and 17 ARM support for Macs --- .github/actions/setup/action.yml | 2 +- README.md | 1 - docs/Setup.md | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 6245ede2..f9f132a7 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -10,7 +10,7 @@ runs: - name: Set up Java uses: actions/setup-java@9519cf1382ac8dc61ad461f7f7cb45f033220189 with: - distribution: 'zulu' + distribution: 'temurin' java-version: 17 - name: Disable Gradle Daemon shell: bash diff --git a/README.md b/README.md index 3e97cd77..58c028d4 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,5 @@ If you plan to fork the project to create a new app of your own, please make the 1. Android Studio will warn about the Gradle checksum. This is a [known issue](https://github.com/gradle/gradle/issues/9361) and can be safely ignored. 1. [#96](https://github.com/zcash/secant-android-wallet/issues/96) - Release builds print some R8 warnings which can be safely ignored. 1. During app first launch, the following exception starting with `AndroidKeysetManager: keyset not found, will generate a new one` is printed twice. This exception is not an error, and the code is not being invoked twice. -1. The task `ktlintFormat` fails on Java 16 and greater. As a workaround, the task is run under Java 11. This requires that JDK 11 be installed, even if a newer JDK is also installed. While this is configured to use the Java toolchain API, [toolchain support for Java 11 does not work on Apple Silicon](https://github.com/gradle/gradle/issues/19140). [Azul Zulu](https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jdk) does offer JDK 11, which must be installed manually to run this task from the command line on Apple Silicon. 1. When running instrumentation tests for the app module, this warning will be printed `WARNING: Failed to retrieve additional test outputs from device. com.android.ddmlib.SyncException: Remote object doesn't exist!` followed by a stacktrace. This can be safely ignored. \ No newline at end of file diff --git a/docs/Setup.md b/docs/Setup.md index 70e21f47..709715ff 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -12,7 +12,7 @@ Start by making sure the command line with Gradle works first, because **all the 1. Install Java 1. Install JVM 11 or greater on your system. Our setup has been tested with Java 11-17. For Windows or Linux, be sure that the `JAVA_HOME` environment variable points to the right Java version. Note: If you switch from a newer to an older JVM version, you may see an error like the following `> com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "~/.android/debug.keystore": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available`. A solution is to delete the debug keystore and allow it to be re-generated. - 1. Android Studio has an embedded JVM, although running Gradle tasks from the command line requires a separate JVM to be installed. Our Gradle scripts are configured to use toolchains to automatically install the correct JVM version. _Note: The ktlintFormat task will fail on Apple Silicon unless a Java 11 virtual machine is installed manually._ + 1. Android Studio has an embedded JVM, although running Gradle tasks from the command line requires a separate JVM to be installed. Our Gradle scripts are configured to use toolchains to automatically install the correct JVM version. 1. Install Android Studio and the Android SDK 1. Download the [Android Studio](https://developer.android.com/studio/) 1. Note: Do not open the project in Android Studio yet. That happens in a subsequent step below. At this stage, we're just using Android Studio to install the Android SDK