1:前情提要
作为一个Android开发 ,面对日益操蛋的应用市场,敢怒不敢言.什么target 28 什么权限说明,什么隐私协议,什么获取手机信息过于频繁....
这部Google play 又折腾起来了.
没办法只能适配了,QB自己,幸福他人,祝愿.xxx.xxxxx.....
2:现实环境
维护了十年左右的老项目(Okgo,ButterKnife 时代的产物,且外包出来的项目)
- targetSdkVersion 33
- Gradle 7.3.1
- Jdk 8
- 一万个三方库

3:Google Play 提交前需要处理的事情
老爷们时代变了,一个Gradle+JDK8 打天下的时代变了

提交应用市场要处理的问题:
- targetSdkVersion 35
- 16KB Size 适配
- AAB 拆包(太大的需求拆包)
4 targetSdkVersion 35 变动
官方要求必须使用target 35 然后一系列连锁反应就来了,真是下了一步好棋啊
使用targetVersion 35 -->需要Gradle 8.0+ -->再需要Jdk17 -->再需要kotlin 1.9+
变动路径
targetSdkVersion:35
官方要求 2025 年新提交 App 必须 target 35+,
Gradle / Android Gradle Plugin:8.0+(推荐 8.6)
对应 Koala / Ladybug 系列。
arduino
classpath 'com.android.tools.build:gradle:8.6.0'
JDK:17(必须)
Google Play 已经要求 AGP 8+ 必须使用 JDK 17。
Android Studio 内置的 JDK 17 直接用即可,不要自己乱装。
Kotlin:1.9.23 或 2.0.0(推荐 1.9.x)
无特殊需求用 1.9.23 最稳,Kotlin 2.0 虽然可用,但生态兼容性仍在适配。
bash
plugins {
id "org.jetbrains.kotlin.android" version "1.9.23"
}
签名(必须 V1 + V2 + V3)
Google Play 会自动生成 V4,所以你本地保持:
- ✔ V1(Jar Signature)
- ✔ V2(APK Signature Scheme v2)
- ✔ V3(APK Signature Scheme v3)
Android Studio 默认勾选即可。
lua
targetSdkVersion 35 版本-->
gradle 8.0+版本-->
jdk17+ 版本-->
kotlin 1.9.23版本-->
签名
真是一步好棋啊,老爷们时代变了,不是一个gradle +jdk8 打天下的时代了
现在使用的版本:
ini
agp = "8.9.1"
compileSdkVersion= "36"
kotlin = "2.2.10"
jdk=17
5: 16KB Size 适配
你真不适配真敢给你不能用!!!
5.1Google Play 提交显示不支持 16KB 的库



5.2 查找.so库所属三方库(重点)
注意:
- 提前bulid一下
- 执行 bundleRelease/assembleRelease 任务
scss
// 在项目 build.gradle 或 app/build.gradle 中添加到最下方就行
tasks.whenTaskAdded { task ->
// 匹配所有 merge<Flavor><BuildType>NativeLibs 任务
if (task.name.matches(/merge.*NativeLibs/)) {
task.doFirst {
println("------- [${task.name}] start scanning so files -------")
// 遍历所有输入文件
it.inputs.files.each { file ->
printSoFiles(file)
}
println("------- [${task.name}] end scanning so files -------")
}
}
}
// 递归查找 .so 文件
def printSoFiles(File file) {
if (file == null || !file.exists()) return
if (file.isDirectory()) {
file.listFiles()?.each { printSoFiles(it) }
} else if (file.name.endsWith(".so")) {
println("Found .so: ${file.absolutePath}")
}
}

5.3 修改的不支持 16KB so的库
rust
// 这个4.3版本支持了 librsjni_androidx.so
api 'jp.wasabeef:glide-transformations:4.0.1'//配合glide实现高斯模糊
api 'jp.wasabeef:glide-transformations:4.3.0'//配合glide实现高斯模糊
// 这个需要申请的新版本
api 'com.blankj:utilcodex:1.31.0'
api 'com.blankj:utilcodex:1.31.1'
// 直接删除了 因为 国外不需要 可以申请pro版本 提供了
api 'com.tencent.bugly:crashreport:3.4.4'
api 'com.tencent.bugly:nativecrashreport:3.9.2'
// 更新新版本 libmmkv.so
api 'com.tencent:mmkv-static:1.2.14'
api 'com.tencent:mmkv-static:1.3.14'
6: 重点:Google Play 测试版本支持设备数为0的情况

6.1 ABI(CPU 架构)配置冲突 splits.abi 和 ndk.abiFilters 同时存在
arduino
// 根据自己需求配置架构
ndk {
//设置支持的SO库架构
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
6.2 Manifest 限制过度
<supports-gl-texture android:name="GL_IMG_texture_consistent"/> 会导致支持设备数 0
注意: 建议直接删除
ini
会导致: 不支持的必用GL纹理压缩格式:GL_IMG_texture_consistent
配置 false 也不行
<supports-gl-texture android:name="GL_IMG_texture_consistent"/>
其他影响的地方改成false:
xml
<!-- 摄像头特性设置为可选,不强制要求 -->
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<!-- OpenGL ES 2.0,不强制要求 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="false"/>
<!-- 支持所有屏幕尺寸 -->
<supports-screens
android:anyDensity="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"/>
6.3 16KB 兼容
不支持的so找提供方处理,处理不了的删除或者找替代方案

总结
Google Play 发布艰难,且行且珍惜吧,各种稀奇古怪都会出现.账号申请,协议 项目适配.....且行且珍惜吧.
欢迎骡子们一起沟通.有事儿滴滴...