🔥 一个困扰无数开发者的原版顽疾——MIUI打包APK后TTS无声,App Inventor 2 中文网已从底层修复。
问题现象:很多开发者踩过的坑
如果你在使用 App Inventor 2 开发应用时遇到过以下情况——
✅ AI伴侣测试:文本朗读器(TextToSpeech)一切正常,能读能说
❌ 打包成APK安装后:完全没有声音,按按钮也没反应
📱 换了几台小米手机都一样,MIUI 14系统
🔄 三星等其他品牌手机正常,无需额外设置权限
你并不是一个人。这个问题在社区中被反复反馈,无数开发者花了大量时间排查权限、重装TTS引擎、调整手机设置,都无济于事。
因为这不是你的代码问题,也不是权限问题。
用户实遇:从困惑到无奈
一位用户在论坛发帖求助:
"在AI伴侣测试的时候是有声音的,打包成Apk安装完是没有声音的,按按钮也是没有反应的。"
"我换了几台手机也一样。"
"我让其获取了声音和读取媒体声音的权限,但是依旧没有进行朗读行为。"
可以看到,用户尝试了所有能想到的办法——授权、换手机、重新打包——全都没用。


根因分析:Android 11+ 包可见性限制
经过深入排查,我们定位到了真正的根因:Android 11(API 30)引入的包可见性(Package Visibility)限制。
什么是包可见性?
Android 11 开始,应用要"看见"并绑定另一个应用提供的服务(比如系统TTS引擎),必须在自身清单文件(AndroidManifest.xml)中通过 <queries> 标签显式声明。
通俗来说:你的应用想用系统的朗读引擎,就得先在"申请表"上写明"我要用TTS服务"。没写?系统就当你看不见这个服务。
原版App Inventor 2的问题
📌 TextToSpeech组件缺少了 @UsesQueries(TTS_SERVICE) 声明
📌 编译出的APK清单中没有对应的 <queries> 标签
📌 系统认为APK"看不见"TTS引擎 → 绑定失败 → init静默失败 → 无声
为什么AI伴侣正常?
AI伴侣(Companion)是预装的完整应用,其清单文件本身就带有TTS相关的queries声明,所以它在任何机型上都能正常绑定TTS引擎。而你打包出的独立APK,因为组件定义中缺少了这个声明,自然就"看不见"TTS服务了。
为什么三星可以、小米不行?
这跟权限无关(TTS本身不需要特殊权限),而是各手机厂商对包可见性过滤的严格程度不同:
| 手机品牌 | AI伴侣 | 打包APK(修复前) | 打包APK(修复后) |
|---|---|---|---|
| 小米(MIUI) | ✅ 正常 | ❌ 无声 | ✅ 正常 |
| 三星(OneUI) | ✅ 正常 | ✅ 碰巧能用 | ✅ 正常 |
MIUI执行包可见性过滤最严格,所以问题最先暴露。三星/OneUI较宽松,恰好放行了,属于"碰巧能用"。其他品牌(华为EMUI、OPPO ColorOS等)也可能存在同样的问题。
✅ App Inventor 2 中文网已修复此问题
我们已经在平台底层为 TextToSpeech 组件添加了 @UsesQueries(android.intent.action.TTS_SERVICE) 声明,与 SpeechRecognizer、BarcodeScanner 等组件保持一致。
修复细节:
🔧 给 TextToSpeech 组件添加类级 @UsesQueries(android.intent.action.TTS_SERVICE)
📦 编译产物 simple_components_build_info.json 已确认正确生成
🏗 编译的APK清单中将包含对应的 <queries> 标签
✅ 各机型(含MIUI)均可一致绑定TTS引擎、正常朗读
这意味着:现在通过 App Inventor 2 中文网(fun123.cn)打包的APK,在小米/MIUI手机上也能正常使用文本朗读了,无需用户做任何额外设置。
为什么原版没修复?
MIT App Inventor 官方源码中,SpeechRecognizer组件早就为 RecognitionService 声明了queries,但TextToSpeech组件却遗漏了TTS_SERVICE的声明。这是一个长期存在的官方遗漏。
我们在本土化过程中发现并修复了这个问题,这也是 App Inventor 2 中文网的价值所在——不只是翻译,更是在原版基础上持续改进。
总结
| 维度 | 说明 |
|---|---|
| 问题现象 | AI伴侣正常,打包APK在MIUI上TTS无声 |
| 根本原因 | Android 11+ 包可见性限制,TextToSpeech组件缺少@UsesQueries声明 |
| 为什么权限没用 | TTS本身不需要权限,是queries声明问题,跟权限无关 |
| 为什么AI伴侣正常 | 伴侣自带queries声明,能直接绑定TTS引擎 |
| 我们的修复 | ✅ 已从底层组件修复,全机型支持 |
遇到这个问题的开发者,只需通过 App Inventor 2 中文网 重新打包APK即可,TTS朗读功能在所有机型上都能正常使用。
相关链接
🌐 App Inventor 2 中文网:www.fun123.cn
💬 社区讨论帖:论坛原帖
https://bbs.tsingfun.com/thread-1509-1-1.html
📋 版本更新日志:查看最新版本
关于我们:App Inventor 2 中文网(fun123.cn)——MIT同步更新的中文本土化平台,不只是翻译,更在原版基础上持续改进,让编程教育更简单!
夜雨聆风