为什么当我们向应用程序添加android服务时,delphi会自动在应用程序的dpr中包含服务的datamodule单元?

为什么当我们向应用程序添加android服务时,delphi会自动在应用程序的dpr中包含服务的datamodule单元?,delphi,firemonkey,Delphi,Firemonkey,当我创建一个新服务时,此服务将有一个主datamodule DM,当我将此服务添加到一个已经存在的应用程序时,delphi会自动将datamodule的单位添加到该应用程序的uses子句中的dpr中: uses ... ... myService_mainunit; 为什么??这也使得在IOS下编译变得不可能…IDE完全不知道您的意图是什么。它不知道你只想在Android上使用它,不管它是不是Android专用代码。您必须编写告诉它这一点的代码,例如使用条件 当您创建一个新

当我创建一个新服务时,此服务将有一个主datamodule DM,当我将此服务添加到一个已经存在的应用程序时,delphi会自动将datamodule的单位添加到该应用程序的uses子句中的dpr中:

uses ...
     ...
     myService_mainunit;

为什么??这也使得在IOS下编译变得不可能…

IDE完全不知道您的意图是什么。它不知道你只想在Android上使用它,不管它是不是Android专用代码。您必须编写告诉它这一点的代码,例如使用条件

当您创建一个新的Android服务时,IDE会为您设置一个预先制作的模板。这个模板恰好使用了一个数据模块来完成它的工作。但是,当您将数据模块添加到项目中时,IDE根本不知道您为什么要添加它。它只是在做它的工作,它为您添加到项目中的任何和每一个单元都这样做,不管该单元的目的是什么。事实上,不存在向项目中添加单元和不在DPR中使用的情况

它也使得在IOS下编译成为不可能

同样,通过围绕它包装平台条件,可以很容易地解决这个问题。当然,IDE控制DPR文件,所以可能不是那么容易,因为IDE可能会使代码变形。但是,很可能不在项目中包含此数据模块,而是将其放置在项目可以找到它的位置