Cordova:android.json中的PACKAGE_NAME是什么意思?

时间:2015-10-08 15:35:16

标签: android json cordova cordova-plugins

我们正在开发一个带有少量插件的Cordova应用程序。最近我们的构建停止了工作,当我在寻找解决方案时,我在plugins目录中找到了android.json文件。有一个关键" installed_plugins"我安装了所有插件,每个插件都带有密钥PACKAGE_NAME。让我烦恼的是,它的价值因某些插件而异:

"installed_plugins": {
    "com.tsukurusha.cordova.screenorientation": {
        "PACKAGE_NAME": "sk.company.app"
    },
    "org.apache.cordova.file": {
        "PACKAGE_NAME": "namespace.umk"
    },
    "com.plugin.datepicker": {
        "PACKAGE_NAME": "sk.app.module"
    },
    "org.apache.cordova.inappbrowser": {
        "PACKAGE_NAME": "sk.app.module"
    },
...

*请注意,我更改了真正的PACKAGE_NAME密钥,用于随机字词,但通常看起来像这样。

我无法找到PACKAGE_NAME的含义,也无法找到它的来源。你知道他们的purpouse是什么,或者指出一些我可以找到它的资源(我查看了Cordova文档,但没有运气)?

2 个答案:

答案 0 :(得分:3)

该文件表明在给定平台(android,ios等)的cordova项目的当前版本中安装了哪些插件。每个插件中的值是插件将使用的变量。在您的情况下,您只能看到PACKAGE_NAME,因为它是cordova在安装插件时将创建的唯一默认变量,但根据插件可能还有其他变量。例如,我使用facebook的插件名为cordova-plugin-facebook4。 android.json中此插件的条目如下所示:

"cordova-plugin-facebook4": {
    "APP_ID": "123456789",
    "APP_NAME": "Facebook App Name",
    "PACKAGE_NAME": "com.example"
}

并使用以下命令安装:

cordova plugin add cordova-plugin-facebook4 --variable APP_ID="123456789" --variable APP_NAME="Facebook App Name"

可以在以下链接(变量部分)中找到解释此文档的文档:https://cordova.apache.org/docs/en/4.0.0/plugin_ref/spec.html

在大多数情况下,PACKAGE_NAME的价值可能无关紧要。默认情况下,该变量由cordova声明,但大多数插件都不会将其用于任何事情。每个插件的值不同的原因是因为每当您创建新构建时插件都不会更新,一旦您安装它们,它们就不会更改。因此,每个插件的PACKAGE_NAME都是您第一次添加该插件时在config.xml中的ID。为了解决此问题(如果插件确实使用了PACKAGE_NAME),您需要删除该插件并重新添加。或者,如果您在config.xml中保留了所有这些内容,则可以删除并添加平台。

答案 1 :(得分:1)

我只能根据自己的经验猜测:

包名称是您应用的名称:

http://docs.phonegap.com/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface

第二个参数com.example.hello为您的项目提供反向域样式标识符。这个参数是可选的,但前提是你也省略了第三个参数,因为参数是位置的。您可以稍后在config.xml文件中编辑此值,但请注意,使用此值可能会在config.xml之外生成代码,例如Java包名称。默认值为io.cordova.hellocordova,但建议您选择合适的值。

在我的情况下,每个插件看起来都是这样的:

" PACKAGE_NAME":" io.cordova.hellocordova"