"universal" ABI flavor produces identical APK to "arm64" — misleading name and wasted build time
Severity: Medium
File: app/build.gradle.kts:265-270
Both the arm64 and universal ABI flavors specify the exact same abiFilters — only arm64-v8a. The "universal" name conventionally implies a multi-architecture APK (e.g. arm64-v8a + armeabi-v7a + x86_64), but here it is a carbon copy:
create("arm64") {
dimension = "abi"
ndk {
abiFilters.clear()
abiFilters.add("arm64-v8a")
}
}
create("universal") {
dimension = "abi"
ndk {
abiFilters.clear()
abiFilters.add("arm64-v8a")
}
}
The same duplication exists in build-logic/convention/src/main/kotlin/com/t8rin/imagetoolbox/ConfigureKotlinAndroid.kt for library modules and in ImageToolboxLibraryPlugin.kt.
Why it matters
Every CI run and local ./build_release.sh builds both variants, doubling the matrix (7 app flavors × 2 ABI = 14 APKs) while producing byte-identical native libraries. Users who see "universal" in the download list expect broader device compatibility. If 32-bit ARM or x86_64 support is intentionally dropped, the flavor should be renamed (e.g. arm64only) or removed entirely to cut build time in half.
"universal" ABI flavor produces identical APK to "arm64" — misleading name and wasted build time
Severity: Medium
File:
app/build.gradle.kts:265-270Both the
arm64anduniversalABI flavors specify the exact sameabiFilters— onlyarm64-v8a. The "universal" name conventionally implies a multi-architecture APK (e.g. arm64-v8a + armeabi-v7a + x86_64), but here it is a carbon copy:The same duplication exists in
build-logic/convention/src/main/kotlin/com/t8rin/imagetoolbox/ConfigureKotlinAndroid.ktfor library modules and inImageToolboxLibraryPlugin.kt.Why it matters
Every CI run and local
./build_release.shbuilds both variants, doubling the matrix (7 app flavors × 2 ABI = 14 APKs) while producing byte-identical native libraries. Users who see "universal" in the download list expect broader device compatibility. If 32-bit ARM or x86_64 support is intentionally dropped, the flavor should be renamed (e.g.arm64only) or removed entirely to cut build time in half.