【发布时间】:2015-07-02 18:15:28
【问题描述】:
我有一个用 Delphi XE8 编写的移动应用程序,我可以从两个单独的项目部署到 Android 或 iOS。维护单独项目的唯一原因是不同的目标平台有不同的“用途”部分,这些部分不会编译......
以ANDROID为目的地:
uses
...
FMX.Layouts, FMX.ListView,
FMX.PhoneDialer,
IdURI,
Androidapi.JNIBridge,
Androidapi.JNI.Provider,
AndroidApi.Jni.GraphicsContentViewText,
Androidapi.JNI.Net,
Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony,
AndroidAPI.Helpers,
AndroidApi.Jni.App,
Androidapi.IOUtils, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, Data.DBXDataSnap, IPPeerClient, ... ;
以IOS为目的地:
uses
...
FMX.Layouts, FMX.ListView,
FMX.PhoneDialer,
///// iOS Only ///////////
MacApi.Helpers, iOSapi.UIKit,
///// iOS Only ///////////
IdURI, IdSSLOpenSSLHeaders_Static,
System.IOUtils,
IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, Data.DBXDataSnap, IPPeerClient, ... ;
我尝试放置 {ifdef IOS} uses ... {Else} uses .... {EndIf IOS} 为两个不同的目标平台定义两个单独的 uses 语句,但这不会编译。
任何有用的建议将不胜感激。 -- 图片库
【问题讨论】:
-
为我工作。当您尝试编译时,如果由于某种原因您正在使用 {$IFDEF IOS} 正确并且可能有一些东西没有被封装,那么它应该在您的使用条款中指出您的问题单元。
-
您错过了
$字符,不是吗?它应该是例如{$ifdef...},不是{ifdef...},否则你只写了cmets。 -
TLama 总是以 cmets 的形式发布答案...
-
应该对“迄今为止提出的最愚蠢的问题”给予某种奖励。谢谢 TLama,希望这不会伤到你的大脑。
-
哦,相信我,我在这里看到了一些非常非常愚蠢的问题。你远远高于他们。
标签: android ios delphi delphi-xe8