fix(android): package the requested emulator ABI

This commit is contained in:
西风逍遥游 committed 2026-10-11 04:39:50 +08:00
1 parent 28c294824c
commit 5b2a7fb0f6
3 files changed
+12 -2

No files matched your search

+2 -1
View File
@@ -97,7 +97,8 @@ EOF
printf 'sdk.dir=%s\n' "$ANDROID_SDK" > "$TEMPLATE/local.properties"
echo "== [test-sdk] assembling APK from $TEMPLATE =="
if ! ( cd "$TEMPLATE" && bash gradlew :app:assembleDebug --no-daemon --console=plain ) \
if ! ( cd "$TEMPLATE" && bash gradlew :app:assembleDebug \
-PevengineAbi="$ANDROID_PACKAGE_ABI" --no-daemon --console=plain ) \
>"$WORK/apk-build.log" 2>&1; then
tail -n 40 "$WORK/apk-build.log"
fail "gradle assembleDebug failed"
+3 -1
View File
@@ -2,6 +2,8 @@ plugins {
id("com.android.application")
}
val evengineAbi = providers.gradleProperty("evengineAbi").getOrElse("arm64-v8a")
android {
namespace = "com.evengine.example"
compileSdk = 34
@@ -16,7 +18,7 @@ android {
versionName = "0.5.2"
ndk {
abiFilters += listOf("arm64-v8a")
abiFilters += listOf(evengineAbi)
}
}
@@ -11,6 +11,7 @@ APK_RUNNER = ROOT / ".github" / "scripts" / "run-consumer-apks.sh"
CONSUMER_TEST = ROOT / ".github" / "scripts" / "consumer-test.sh"
SDK_INSTALL = ROOT / "cmake" / "install_sdk.cmake"
THIRD_PARTY_BUILD = ROOT / "cmake" / "third_party_build.cmake"
ANDROID_GRADLE = ROOT / "platform" / "android" / "apk" / "app" / "build.gradle.kts"
def job_block(workflow: str, job: str, next_job: str | None = None) -> str:
@@ -30,6 +31,7 @@ class MobileSdkReleaseGateTests(unittest.TestCase):
cls.consumer_test = CONSUMER_TEST.read_text(encoding="utf-8")
cls.sdk_install = SDK_INSTALL.read_text(encoding="utf-8")
cls.third_party_build = THIRD_PARTY_BUILD.read_text(encoding="utf-8")
cls.android_gradle = ANDROID_GRADLE.read_text(encoding="utf-8")
def test_android_emulator_is_a_hard_gate_for_every_consumer_host(self) -> None:
block = job_block(self.workflow, "run-android", "ios-sim")
@@ -81,6 +83,11 @@ class MobileSdkReleaseGateTests(unittest.TestCase):
self.assertIn('ANDROID_ABI MATCHES "^x86(_64)?$"', self.third_party_build)
self.assertIn("-DALSOFT_CPUEXT_NEON=OFF", self.third_party_build)
def test_android_apk_abi_is_overridable_for_native_emulator_gate(self) -> None:
self.assertIn('gradleProperty("evengineAbi").getOrElse("arm64-v8a")', self.android_gradle)
self.assertIn('abiFilters += listOf(evengineAbi)', self.android_gradle)
self.assertIn('-PevengineAbi="$ANDROID_PACKAGE_ABI"', self.sdk_test)
if __name__ == "__main__":
unittest.main()