一、发布困境:强制改名
目标: 将应用发布到 Google Play Store。
起因: 应用的原始包名 com.liwensoft.recognizefindtext
已经被占用(可能是之前上传的内部版本或测试版本),Play Console 拒绝接受新的应用版本。
决定: 必须更改应用的唯一标识符 (Application ID)。最终确定的新包名为:com.liwensoft.recognizefindtextbarcode
。
二、错误操作与症状
错误操作: 在 Android Studio 中,开发者手动修改了 build.gradle
(Module: app) 中的 applicationId
字段为新名称,但没有同时修改 namespace
,也没有通过 Android Studio 的 Refactor
功能同步更改代码文件结构。
症状:
-
成功构建 AAB 文件并上传到 Google Play Console。
-
应用在设备上安装后,立即发生 启动崩溃 (Crash on Startup / COS)。
-
Logcat 中未显示清晰的
FATAL EXCEPTION
,但系统日志显示应用进程被强制终止。
三、根本原因
问题核心在于 applicationId
和 namespace
的配置不同步:
-
applicationId
(新):com.liwensoft.recognizefindtextbarcode
(用于标识应用) -
namespace
(旧):com.liwensoft.recognizefindtext
(用于代码引用)
由于 namespace
未更新,应用代码中生成的 ViewBinding 类 和 资源类 (R 类) 仍然在旧包名路径下寻找依赖,最终导致运行时无法加载关键的 UI 资源,引发崩溃。
四、最终解决关键点
通过 Log 调试和逐步排查,最终采用了最安全的修复方案:
-
同步修改 Gradle 文件: 确保
applicationId
和namespace
都设置为新包名。 -
使用 Refactor 功能: 通过 Android Studio 的
Refactor
→Rename
自动同步代码文件结构和所有import
语句。 -
版本更新: 递增
versionCode
和versionName
,完成 AAB 文件生成。
(至此,应用已在新包名下运行正常,并准备好进行最终发布。)