diff --git a/.github/workflows/test-android-build.yml b/.github/workflows/test-android-build.yml
new file mode 100644
index 00000000000..e9aa10892b6
--- /dev/null
+++ b/.github/workflows/test-android-build.yml
@@ -0,0 +1,58 @@
+name: Test Android build
+
+on:
+ push:
+ paths: [ 'forge-gui-android/**' ]
+ pull_request:
+ paths: [ 'forge-gui-android/**' ]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: [ '17' ]
+ name: Test with Java ${{ matrix.Java }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
+ with:
+ java-version: ${{ matrix.java }}
+ distribution: 'temurin'
+ cache: 'maven'
+
+ - name: Install old maven (3.8.1)
+ run: |
+ curl -o apache-maven-3.8.1-bin.tar.gz https://archive.apache.org/dist/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
+ tar xf apache-maven-3.8.1-bin.tar.gz
+ export PATH=$PWD/apache-maven-3.8.1/bin:$PATH
+ export MAVEN_HOME=$PWD/apache-maven-3.8.1
+ mvn --version
+
+ - name: Set Up Android tools
+ run: |
+ JAVA_HOME=${JAVA_HOME_17_X64} ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platform-tools"
+ JAVA_HOME=${JAVA_HOME_17_X64} ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "platforms;android-35"
+ JAVA_HOME=${JAVA_HOME_17_X64} ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "build-tools;35.0.0"
+
+ - name: Install Android maven plugin
+ run: |
+ mkdir -p ~/.m2/repository/com/simpligility/maven/plugins/android-maven-plugin/4.6.2
+ cd ~/.m2/repository/com/simpligility/maven/plugins/android-maven-plugin/4.6.2
+ curl -L -o android-maven-plugin-4.6.2.jar https://github.com/Card-Forge/android-maven-plugin/releases/download/4.6.2/android-maven-plugin-4.6.2.jar
+ curl -L -o android-maven-plugin-4.6.2.pom https://github.com/Card-Forge/android-maven-plugin/releases/download/4.6.2/android-maven-plugin-4.6.2.pom
+ #mvn install:install-file -Dfile=android-maven-plugin-4.6.2.jar -DgroupId=com.simpligility.maven.plugins -DartifactId=android-maven-plugin -Dversion=4.6.2 -Dpackaging=jar
+ cd -
+ mvn install -Dmaven.test.skip=true
+ mvn dependency:tree
+
+ - name: Install virtual framebuffer (if not available) to allow running GUI on a headless server
+ run: command -v Xvfb >/dev/null 2>&1 || { sudo apt update && sudo apt install -y xvfb; }
+
+ - name: Run build in virtual framebuffer
+ run: |
+ export DISPLAY=":1"
+ Xvfb :1 -screen 0 800x600x8 &
+ mvn -U -B -P android-test-build verify -e -T 1C -Dandroid.sdk.path=/usr/local/lib/android/sdk -Dandroid.buildToolsVersion=35.0.0 -Dmaven.test.skip=true
diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml
index 9a750bdff09..c33c54aa40f 100644
--- a/forge-gui-android/pom.xml
+++ b/forge-gui-android/pom.xml
@@ -527,5 +527,116 @@
+
+
+ android-test-build
+
+ apk
+
+
+
+
+ exec-maven-plugin
+ 3.4.1
+ org.codehaus.mojo
+
+
+ SignV2
+ verify
+
+ exec
+
+
+
+
+ ${pom.basedir}
+ java
+
+ -jar
+ ${pom.basedir}/tools/uber-apk-signer.jar
+ -a
+ ${pom.basedir}/target/
+ --debug
+
+
+
+
+ com.simpligility.maven.plugins
+ android-maven-plugin
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.3.1
+
+
+ com.sun.xml.bind
+ jaxb-impl
+ 2.3.4
+
+
+ sun
+ misc
+ 1
+ system
+ ${pom.basedir}/libs/sun-misc.jar
+
+
+ 4.6.2
+ true
+
+
+ false
+
+
+ 35
+ 35.0.0
+
+
+ false
+
+ true
+ ${project.basedir}/assets
+ ${project.basedir}/res
+ ${project.basedir}/libs
+ true
+
+ false
+ ${project.basedir}/proguard.cfg
+
+ ${pom.basedir}/tools/proguard.jar
+ true
+ d8
+
+ 26
+
+ ${build.min.memory}
+ ${build.max.memory}
+
+
+
+ true
+
+ ${build.min.memory}
+ ${build.max.memory}
+
+ --min-sdk-version=26
+
+
+
+
+ update-manifest
+
+ manifest-merger
+
+
+ ${snapshot-version}
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index e3e8c8e8b4c..7cabbdbe7c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,10 +69,10 @@
forge-gui-mobile
forge-gui-mobile-dev
forge-gui-desktop
- forge-gui-android
forge-gui-ios
forge-adventure
forge-lda
+ forge-gui-android