您的位置:首页 > 编程语言 > Delphi

DelphiXE10.2.3 Firemonkey下窗体的编译异常处理

2020-03-01 16:16 991 查看

环境WIN10+Delphi XE10.2.3+HUAWEI MAte8
开发APP过程中对窗体的显示和切换时发现市场出现编译调试异常,不是语法问题,而是Firemonkey封装过程中对JAVA的那些东西的调用过程的问题.
错误:
Checking project dependencies…
Compiling CESA_APP.dproj (Debug, Android)
dccaarm command line for “CESA_APP.dpr”
f:\embarcadero\studio\19.0\bin\dccaarm.exe -$O- --no-config -M -Q -TX.so -AGenerics.Collections=System.Generics.Collections;
Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG
-E.\Android\Debug -If:\embarcadero\studio\19.0\lib\Android\debug;f:\embarcadero\studio\19.0\lib\Android\Release;
F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Design;F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Library;
F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Styles;F:\Embarcadero\3rdComponent\Listview;F:\Embarcadero\3rdComponent\Listview\Win32\Debug
-LEC:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\Android -LNC:\Users\Public\Documents\Embarcadero\Studio\19.0\Dcp\Android -NU.\Android\Debug
-NSSystem;Xml;Data;Datasnap;Web;Soap; -Of:\embarcadero\studio\19.0\lib\Android\Release;F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Design;
F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Library;F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Styles;F:\Embarcadero\3rdComponent\Listview;
F:\Embarcadero\3rdComponent\Listview\Win32\Debug -Rf:\embarcadero\studio\19.0\lib\Android\Release;F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Design;
F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Library;F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Styles;F:\Embarcadero\3rdComponent\Listview;
F:\Embarcadero\3rdComponent\Listview\Win32\Debug -Uf:\embarcadero\studio\19.0\lib\Android\debug;f:\embarcadero\studio\19.0\lib\Android\Release;
F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Design;F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Library;
F:\Embarcadero\3rdComponent\fgx_0.6.0.46_XE8\Styles;F:\Embarcadero\3rdComponent\Listview;F:\Embarcadero\3rdComponent\Listview\Win32\Debug
–libpath:f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\platforms\android-14\arch-arm\usr\lib;
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a
–linker:f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe
-V -VN -NO.\Android\Debug CESA_APP.dpr
[DCC Warning] Unit_APP_PSVM.pas(102): W1000 Symbol ‘Get’ is deprecated: ‘Use Pairs property’
[DCC Hint] Unit_APP_PSVM.pas(32): H2219 Private symbol ‘Send_Convert’ declared but never used
[DCC Error] E2597 f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: F:\SoftProject\CSEA Release\Mobile\Android\Debug\Unit_APP_Login.o:(.data+0x54): error: undefined reference to ‘__init_record_Unit_App_main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: F:\SoftProject\CSEA Release\Mobile\Android\Debug\Unit_APP_Login.o: in function Unit_app_login::TFm_APP_Login::Button1Click(System::TObject*):./Unit_APP_Login.pas:59: error: undefined reference to ‘Unit_app_main::Fm_APP_Main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: F:\SoftProject\CSEA Release\Mobile\Android\Debug\Unit_APP_PSVM.o:(.data+0x58): error: undefined reference to ‘__init_record_Unit_App_main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: F:\SoftProject\CSEA Release\Mobile\Android\Debug\Unit_APP_PSVM.o: in function Unit_app_psvm::TFm_APP_PSVM::SpeedButton1Click(System::TObject*):./Unit_APP_PSVM.pas:125: error: undefined reference to ‘Unit_app_main::Fm_APP_Main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: .\Android\Debug\CESA_APP.o:(.data+0x20): error: undefined reference to ‘__init_record_Unit_App_main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: .\Android\Debug\CESA_APP.o: in function _NativeMain:./CESA_APP.dpr:20: error: undefined reference to ‘Unit_app_main::Fm_APP_Main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: .\Android\Debug\CESA_APP.o: in function _NativeMain:./CESA_APP.dpr:20: error: undefined reference to ‘vtable for Unit_app_main::TFm_APP_Main’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: .\Android\Debug\CESA_APP.o: in function _ZN8Cesa_app0E:CESA_APP(.data.rel.ro._ZN8Cesa_app0E+0x3cc8): error: undefined reference to ‘Unit_app_main::initialization()’
f:\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: .\Android\Debug\CESA_APP.o: in function _ZN8Cesa_app0E:CESA_APP(.data.rel.ro._ZN8Cesa_app0E+0x3ccc): error: undefined reference to ‘Unit_app_main::Finalization()’
[DCC Fatal Error] F2588 Linker error code: 1 ($00000001)
Failed
Elapsed time: 00:00:12.6
经验总结:
1,除APP主窗体外的其他窗体,如果没有其他语法或业务逻辑冲突的情况下,在FormClose中定义 Action := TCloseAction.caFree; 可以最大限度避免这些窗体在编译时出现的错误.刚刚解决掉.

至于主窗体是否这样做,个人没有找到区别.
2,方法1中如果没有解决问题,很简单,右键点击APP项目,重新Build…现在错误消失了.

  • 点赞
  • 收藏
  • 分享
  • 文章举报
赵蜀林 发布了1 篇原创文章 · 获赞 0 · 访问量 182 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐