2015-09-08 21 views
5

Ich habe MSBuild aufgerufen, um meine VCL-Projekte für eine lange Zeit zu erstellen, und möchte auch einige Android-Projekte hinzufügen. Ich dachte, es wäre zu viel verlangt zu fragen, dass meine gleichen Aufrufe auf einem Delphi XE8-Projekt funktionieren würden, das auf Android und nicht auf Windows ausgerichtet ist, aber es scheint nah zu kommen. Meine Ausgabe ist unter. Wie Sie sehen, scheint es den ganzen Weg durch die Zusammenstellung zu gehen, fällt aber an dem Punkt, an dem etwas mit dem Manifest gemacht wird.Problem mit MSBuild, um ein Delphi-Android-Projekt zu erstellen

Kann jemand vorschlagen, was ich anstellen könnte, um zu lösen? Vielen Dank.

09/08/2015 09:03:29  Building C:\Art_soft\Code\PRT-MS1\Delphi\Libraries\Multiplatform\Delphi projects\FMXCommonUnitTests_Android.dproj 

Microsoft (R) Build Engine Version 3.5.30729.5420 
[Microsoft .NET Framework, Version 2.0.50727.5485] 
Copyright (C) Microsoft Corporation 2007. All rights reserved. 

Build started 08/09/2015 09:03:29. 
Project "C:\Art_soft\Code\PRT-MS1\Delphi\Libraries\Multiplatform\Delphi projects\FMXCommonUnitTests_Android.dproj" on node 0 (Build target(s)). 
    Creating directory "c:\scratch\msbuild". 
BuildClassesDex: 
    Merged dex A (520 defs/562.4KiB) with dex B (68 defs/120.5KiB). Result is 588 defs/833.3KiB. Took 0.3s 
    Merged dex A (588 defs/833.3KiB) with dex B (3 defs/2.1KiB). Result is 591 defs/1078.6KiB. Took 0.1s 
    Merged dex A (591 defs/1078.6KiB) with dex B (95 defs/99.0KiB). Result is 686 defs/1624.1KiB. Took 0.1s 
    Result compacted from 2556.0KiB to 858.9KiB to save 1697.1KiB 
    Merged dex A (686 defs/1624.1KiB) with dex B (87 defs/112.8KiB). Result is 773 defs/858.9KiB. Took 0.2s 
    Merged dex A (773 defs/858.9KiB) with dex B (3 defs/5.2KiB). Result is 776 defs/1054.1KiB. Took 0.0s 
    Merged dex A (776 defs/1054.1KiB) with dex B (25 defs/37.8KiB). Result is 801 defs/1410.8KiB. Took 0.1s 
    Result compacted from 4165.5KiB to 2714.8KiB to save 1450.7KiB 
    Merged dex A (801 defs/1410.8KiB) with dex B (1869 defs/1854.6KiB). Result is 2670 defs/2714.8KiB. Took 0.4s 
BuildVersionResource: 
    CodeGear Resource Compiler/Binder 
    Version 1.2.2 Copyright (c) 2008-2012 Embarcadero Technologies Inc. 

    Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 

    Copyright (C) Microsoft Corporation. All rights reserved. 


    Deleting file "FMXCommonUnitTests_Android.vrc". 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: The "CreateAndroidManifestFile" task failed unexpectedly. 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: System.UnauthorizedAccessException: Access to the path 'c:\scratch\msbuild\..\..\AndroidManifest.template.xml' is denied. 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: at Borland.Build.Tasks.Shared.CreateAndroidManifestFile.genManifestFile() 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: at Borland.Build.Tasks.Shared.CreateAndroidManifestFile.Execute() 
c:\Program Files (x86)\Embarcadero\Studio\16.0\bin\CodeGear.Common.Targets(1315,5): error MSB4018: at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult) 
Done Building Project "C:\Art_soft\Code\PRT-MS1\Delphi\Libraries\Multiplatform\Delphi projects\FMXCommonUnitTests_Android.dproj" (Build target(s)) -- FAILED. 

Build FAILED. 

Antwort

0

Der beste Weg ist, ein neues Multi-Device-Projekt in einem neuen Ordner mit den gleichen Namen zu erstellen. Mit den gleichen Namen meine ich die DPR und die erste Delphi-Hauptform, UNIT1.PAS. Sobald dies erstellt wurde, versuchen Sie es zu kompilieren. Nach dem erfolgreichen Kompilieren schließen Sie Delphi und kopieren Sie die Dateien aus dem ursprünglichen Projekt in das neu erstellte Projekt. Stellen Sie sicher, dass nur die .DPR, .PAS, .FMX. .VLB-Dateien werden kopiert. ERSETZEN SIE KEINE DPROJ-Dateien.

Öffnen Sie Delphi und das Projekt und Sie werden sehen, dass Sie jetzt für Android kompilieren können.

Mit freundlichen Grüßen

+0

THanks aber meine Frage bezog sich darauf, wie man den Android Build außerhalb der IDE automatisieren. Ich habe kein Problem beim Erstellen und Bereitstellen von innerhalb der IDE und ich verwende die Methode, die Sie vorschlagen. –

Verwandte Themen