1

为了构建我的应用程序的不同版本,我将applicationPackage属性添加到构建文件中:

jfxmobile {
   javafxportsVersion = '8.60.6'

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

package但是生成的apk文件还是以AndroidManifest中的属性命名的:

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

如果您想构建不同风格的应用程序,如“Lite”和“Full”,更改包名称的正确方法是什么?

4

1 回答 1

2

目前,当您使用 Gluon 插件创建 Mobile 项目时,jfxmobile 插件会AndroidManifest.xml根据您的输入(主类、包名)构建默认文件。之后,您对项目所做的任何修改(如重构主类名或包名)都不会在 Android 清单文件上更新,因此您必须自己手动进行。

如果您查看插件的源代码,有一种方法可以在每次运行android任务时强制重新创建清单:只需删除 src/android/AndroidManifest.xml 下的文件,并删除manifest构建中的属性。 .gradle 文件。当您运行android或时,将在 下创建androidIntall一个新的默认build/javafxports/tmp/androidAndroid 清单,同时考虑您的applicationPackage属性。

请注意,这将不允许清单中的任何自定义更改,例如添加或删除权限或更改版本号。很明显,这不是一个完整的解决方案。

另一种方法是创建一个自定义任务,根据您自己的设置重新创建 AndroidManifest 文件,基于插件本身的方式。

如果您认为构建 apk 需要更动态的解决方案,您可以在 javafxports repo下提出问题。例如,允许使用与 Android 中相同的方法,其中使用strings.xml文件设置一些元数据 (@string)。

于 2016-05-23T23:20:24.997 回答