产品手记 App 上线后一点就闪退,我折腾了一整天,最后发现问题根本不在代码里

transferiq(TransferIQ) · 2026年07月13日 · 21 次阅读

最近,我把自己做的 App 更新到了 Google Play。

这个 App 叫 TransferIQ,是一个比较外汇、跨境汇款和加密货币兑换路线的工具。

我本身不会写代码,整个产品主要是借助 AI,一边学习、一边修改、一边上线。

原本以为这次更新只是增加一个底部广告,应该不会有太大问题。

结果新版本发布后,我点击 App 图标,启动画面刚出现,应用就直接关闭了。

再打开,还是一样。

点击图标 → 出现启动画面 → 立即闪退。

那一刻真的很崩溃。

因为这个 App 的主文件已经接近 9000 行。我第一反应就是:一定是最近修改功能时,把某个地方弄坏了。

于是我开始检查整个文件。

我怀疑过很多地方:

新增加的广告代码 汇率转换功能 为交易所数据增加的代理请求 变量是不是在声明前被使用 某个功能是不是在 App 启动时立即执行 生产环境和测试环境是否存在差异

我甚至专门建立了一个测试环境,模拟正式版本启动时执行整个文件。

检查结果却很奇怪。

代码语法没有问题。

App 的第一次画面加载也没有问题。

我以为会出错的地方,一个个检查下来都没有真正导致闪退。

期间我反复修改、重新构建、重新上传。

每次构建都要等待,结果安装以后还是闪退。

我一度怀疑,是不是自己用 AI 做出来的这个 App 从根本上就不稳定。

后来,我终于查看了 Android 的崩溃日志。

日志里最关键的两行是:

Invalid application ID MobileAdsInitProvider.attachInfo

看到这两行以后,调查方向终于变了。

问题根本不在那接近 9000 行的主文件里。

真正的问题在 app.json 生成的 Android 原生配置中。

我增加了 Google AdMob 广告,但 AdMob 的 App ID 没有被正确写入最终的 Android 配置。

结果就是:

Android 在启动 App 时,会先初始化广告服务。

广告服务发现 App ID 无效,便直接让整个应用崩溃。

这个过程发生在 JavaScript 代码开始运行之前。

所以,即使我在代码里写了错误处理,也完全没有作用。

因为 App 在执行到那些代码之前,就已经关闭了。

这里还有一个很容易弄错的地方。

AdMob 有两种看起来非常相似的 ID:

App ID: ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy

Banner Ad Unit ID: ca-app-pub-xxxxxxxxxxxxxxxx/zzzzzzzzzz

两者最大的区别是:

App ID 中间使用 ~ 广告单元 ID 中间使用 /

App ID 是整个应用的广告配置。

广告单元 ID 则是具体某个 Banner 或其他广告位置的编号。

如果填错位置,或者 App ID 没有正确进入 Android 的最终配置,项目仍然可能:

成功构建 成功生成安装包 成功上传 Google Play 但用户点击图标后立即闪退

最后,我重新整理了 app.json 中的 AdMob 配置,确认 App ID 和广告单元 ID 没有混用,然后重新构建版本。

问题终于解决了。

这次经历让我学到了几件事。

  1. App 一打开就闪退,不一定是页面代码的问题

如果连首页都还没有显示,应用就直接关闭,应该先检查原生配置、第三方 SDK 和系统日志。

不要像我一样,一开始就盯着几千行代码反复查。

  1. 构建成功,不代表 App 一定能正常运行

能够生成安装包,只说明构建流程完成了。

并不代表每一个配置都正确,也不代表应用在真实手机上一定能启动。

  1. 一条崩溃日志,比反复猜测有效得多

我花了很长时间检查代码。

但真正帮助我找到问题的,只是日志中的两行文字:

Invalid application ID MobileAdsInitProvider

如果一开始就看日志,可能几个小时的折腾都可以避免。

  1. 使用 AI 做产品,真正困难的不是生成代码

AI 可以帮助写代码、检查问题、修改功能。

但当问题涉及正式版本、Android 原生配置、第三方服务和构建环境时,必须把实际日志和准确的配置一起检查。

否则不同的 AI 也可能不断猜测,让问题变得越来越复杂。

  1. 最让人崩溃的问题,往往只是一个很小的配置错误

我一直以为,问题一定藏在那接近 9000 行的文件里。

结果真正让我浪费一整天的,是文件外面的一个配置项。

对专业开发者来说,这可能只是一个很普通的问题。

但对一个没有编程背景、靠 AI 一步一步把产品做出来的人来说,这种问题真的会让人怀疑自己到底能不能继续做下去。

不过,至少这次我没有放弃。

折腾了一整天,最后还是把原因找了出来,也把版本修好了。

这款 App 叫 TransferIQ,主要用于比较外汇、跨境汇款和加密货币兑换路线。

感兴趣的话,可以直接在 Google Play 商店搜索 TransferIQ。

大家有没有经历过类似的情况?

花了几个小时检查代码,最后却发现问题根本不在代码里。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号