2012-03-25 8 views

risposta

10

Se si desidera eseguire una modifica una volta all'origine, è possibile utilizzare lo strumento da riga di comando di Android android update project La documentazione è disponibile in [documenti dello sviluppatore] [1].

Se si desidera eseguire dinamicamente durante ogni generazione, sarà necessario uno script di formica personalizzato per passare argomenti in aapt Sfortunatamente non è possibile utilizzare l'attività aapt predefinita perché non supporta l'impostazione dell'opzione --rename-manifest -pacchetto.

È necessario aggiungere il seguente target al file build.xml predefinito android da riga di comando; aggiungerlo prima <import file="${sdk.dir}/tools/ant/build.xml" />

<!-- Replaces the target in tools\ant\build.xml --> 
<target name="-package-resources" depends="-crunch"> 
      <!-- this exec replicates the output of the aapt task in build.xml 
       -package-resources with the addition of a rename-manifest-package option. --> 
      <exec executable="${aapt}" failonerror="true"> 
       <arg value="package" /> 
       <arg value="-f" /> 
       <arg value="--auto-add-overlay" /> 
       <arg value="-M" /> 
       <arg path="${basedir}/AndroidManifest.xml" /> 
       <arg value="-S" /> 
       <arg path="${resource.absolute.dir}" /> 
       <arg value="-S" /> 
       <arg path="${basedir}/${android.library.reference.1}/${resource.dir}" /> 
       <arg value="-A" /> 
       <arg path="${asset.absolute.dir}" /> 
       <arg value="-I" /> 
       <arg path="${android.jar}" /> 
       <arg value="-F" /> 
       <arg path="${out.absolute.dir}/${resource.package.file.name}" /> 
       <arg value="--rename-manifest-package" /> 
       <arg value="${package.manifest.name}" /> 
      </exec> 
</target> 

La proprietà package.manifest.name volontà contiene il nome del pacchetto. È possibile impostarlo in un file di proprietà o come opzione della riga di comando -Dpackage.manifest.name=value È anche possibile estenderlo per rinominare l'apk di output in base a una proprietà.

Questa domanda riguarda ottenere informazioni sulla versione dal manifesto di aggiungere al nome di uscita apk: How to include version string in the filename when building Android apk with ant?

Hai voglia di guardare il file build.xml che viene importato per avere un'idea di ciò che sarà necessario per sovrascrivere.

È possibile continuare ad aggiungere le sovrascritture delle regole al file build.xml locale, ma a causa del livello di personalizzazione necessario, penserei direttamente a copiare il file build.xml dagli strumenti di Android e a modificarlo piuttosto che utilizzarlo come importazione. Ciò significa più lavoro assicurandosi che funzioni ancora su tutti gli aggiornamenti della catena di strumenti di Android.

+0

Grazie per la risposta! Come ho detto quando ho risposto a @edthethird, ho bisogno di aggiornare il nome del pacchetto, il numero di versione e il nome della versione. Mi piacerebbe davvero usare Ant ma sono in una vera perdita. Qualche buona risorsa a cui potresti collegarmi? – OrhanC1

+0

La documentazione ant è un buon punto di partenza, anche solo guardando il file android build.xml in {sdk.dir} /tools/ant/build.xml dovrebbe darti una buona idea di come funziona. L'obiettivo aapt è davvero l'unica salsa speciale a causa delle limitazioni sull'attività predefinita di aapt java fornita con gli strumenti. Il resto riguarda solo il corretto settaggio dei valori delle proprietà. – cistearns

+0

Dopo un sacco di rooting e tentativi di varie risposte, questa risposta è ciò che ha funzionato per me, salvavita! – Guykun

Problemi correlati