2016-05-23 9 views
1

Um ändern, um verschiedene Versionen meiner App zu bauen, habe ich die applicationPackage Eigenschaft auf die Build-Datei:Wie die applicationId in einem Gluon-Mobilprojekt

jfxmobile { 
    javafxportsVersion = '8.60.6' 

     android { 
      manifest = 'src/android/AndroidManifest.xml' 
      applicationPackage = 'com.myapp.lite' 
     } 
} 

Aber die erzeugte apk-Datei immer noch nach dem Namen package Eigenschaft im AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.myapp" 
    android:versionCode="1" 
    android:versionName="1.0.0" > 

Was ist der richtige Weg, um die Paketnamen zu ändern, wenn Sie verschiedene Aromen Ihrer App wie „Lite“ und „Full“ bauen?

Antwort

1

Derzeit, wenn Sie das Gluon-Plugin verwenden, um ein Mobile-Projekt zu erstellen, erstellt das Jfxmobile-Plugin die Standarddatei AndroidManifest.xml basierend auf Ihrer Eingabe (Hauptklasse, Paketname). Danach werden alle Änderungen, die Sie an Ihrem Projekt vornehmen (wie Refactoring des Hauptklassennamens oder des Paketnamens) werden nicht aktualisiert auf der Android-Manifestdatei, so dass Sie es manuell tun müssen.

Wenn Sie einen Blick auf die source code des Plugins haben, gibt es eine Möglichkeit, die jedes Mal, wenn die android Aufgabe laufen manifest neu zu erzwingen: Nur löschen Sie die Datei unter src/android/AndroidManifest.xml, und entfernen Sie die manifest Eigenschaft in der build.gradle-Datei. Wenn Sie android oder androidIntall ausführen, wird ein neues Standard Android-Manifest unter build/javafxports/tmp/android unter Berücksichtigung Ihrer applicationPackage Eigenschaft erstellt.

Beachten Sie, dass dies keine benutzerdefinierten Änderungen im Manifest zulässt, wie das Hinzufügen oder Entfernen von Berechtigungen oder das Ändern der Versionsnummern. Es ist also eindeutig keine vollständige Lösung.

Ein anderer Ansatz besteht darin, eine benutzerdefinierte Aufgabe zu erstellen, die die AndroidManifest-Datei basierend auf Ihren eigenen Einstellungen neu erstellt, basierend auf der Art und Weise, wie das Plugin es selbst ausführt.

Sie können ein Problem unter javafxports repo einreichen, wenn Sie denken, dass eine dynamischere Lösung erforderlich ist, um die apk zu erstellen. Zum Beispiel die Verwendung des gleichen Ansatzes wie in Android, wo eine strings.xml Datei verwendet wird, um einige Metadaten zu setzen (@string).

+0

Noch einmal sehr interessant. Ich ging davon aus, dass die "androidApplication" -Eigenschaft wie 'defaultConfig {applicationId" com.myApp.lite "}' funktioniert. Sie waren eine große Quelle der Hilfe auf dem Weg zu meinem ersten Playstore-Release, was wiederum ohne das Gluon-Framework nicht möglich gewesen wäre. Vielen Dank für Ihre Hilfe – jns