Delphi 11.0 FMX Android应用无法在Nox Android7.1模拟器启动求助
解决Delphi 11 FMX Android应用在Nox 7.1模拟器启动崩溃问题
针对你遇到的仅含TButton的FMX应用在Nox 7.1模拟器闪屏后崩溃的问题,可按以下步骤排查解决:
1. 适配模拟器架构
Delphi 11默认编译ARM架构APK,Nox模拟器多为x86/x86_64架构,即便支持ARM转译也可能存在兼容问题:
- 打开Delphi项目设置,切换到Android平台,在“目标架构”中勾选x86(对应32位模拟器)或x86_64,重新编译APK后安装测试。
- 或在Nox模拟器的设置中开启“ARM兼容模式”(部分版本命名为“强制使用ARM库”),重启模拟器后再安装应用。
2. 匹配SDK/NDK版本
你当前使用的Android 32位SDK 25.2.5版本过低,Delphi 11对SDK版本有明确要求:
- 通过Delphi IDE的“SDK管理器”安装官方推荐的Android SDK(建议API 29及以上)和对应NDK版本,更新项目的SDK路径指向新安装目录,重新编译项目。
3. 检查闪屏与权限配置
闪屏后崩溃可能和资源或权限相关:
- 打开项目生成的
AndroidManifest.xml,确认已添加必要权限(如INTERNET,部分FMX基础组件依赖该权限),同时检查闪屏图片的尺寸、格式是否符合Android规范。 - 临时移除自定义闪屏配置,使用FMX默认闪屏测试,排查是否为闪屏资源导致的崩溃。
4. 查看崩溃日志定位根因
若以上方法无效,需通过日志明确崩溃原因:
- 使用Delphi自带的“设备监视器”连接Nox模拟器,过滤应用包名查看崩溃堆栈信息。
- 或在命令行执行
adb logcat | grep 你的应用包名,获取详细崩溃日志,定位具体出错环节。
你提供的代码参考:
MainUnit.pas
unit MainUnit; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.fmx} procedure TForm2.Button1Click(Sender: TObject); begin Button1.Text := 'Clicked'; end; end.
TestApp.dpr
program TestApp; uses System.StartUpCopy, FMX.Forms, MainUnit in 'MainUnit.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm2, Form2); Application.Run; end.
内容的提问来源于stack exchange,提问作者slagbandit
相关产品推荐
相关产品推荐

