纯AS3创建Android manifest xml
Posted
技术标签:
【中文标题】纯AS3创建Android manifest xml【英文标题】:Creating Android manifest xml by pure AS3 【发布时间】:2018-11-12 06:51:45 【问题描述】:有人可以仅使用动作脚本代码创建此清单 xml 吗?我想创建一个创建清单文件的应用程序,但我遇到了前缀和命名空间问题:
<manifest android:installLocation="auto">
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
要生成的非常简单的示例动作脚本代码:
main = new XML(<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto"/>);
main.appendChild(<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" />)
原因:
TypeError: Error #1083: The prefix "android" for element "minSdkVersion" is not bound.
我不知道如何为 XML 文件设置前缀。
【问题讨论】:
new XML(...) 构造函数将 String 作为参数,而您传递的是 XML 对象。 Action Script 支持 JSX 到。但我更改了代码以确保您确定: main = new XML('好的,所以我稍微戳了一下,这就是我的想法。
这行得通:
var M:XML =
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" />
</manifest>;
这不是:
var M:XML;
M = <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" />;
M.appendChild(<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" />);
我不是 XML 专家,但我猜是因为以下原因。我们可以将最后一段代码翻译为:
var U:XML = <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" />;
var M:XML = <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" />;
M.appendChild(U);
我明确地将 U 放在 M 之前,因为这里的顺序无关紧要,但这样一来就可以不言自明了。
如果你这样看,你会清楚地看到 android 前缀只存在于 M 中,而从未存在于 U 中。 Flash Player 没有预识别模块,也不知道您打算将 U 仅作为 M 的一部分。然后,作为一个单独的 XML 实例,U 在您尝试创建它时是无效的。
【讨论】:
谢谢,但我必须对前缀做点什么。因为我要开发一个动态的 XML 生成器,我应该通过一个函数来改变 minSdk 和其他的。 @MESepehr 您可以将所有节点构造为 String,然后将 new XML(...) 作为一个整体创建。或者您可以先创建整个 XML,然后使用其属性。以上是关于纯AS3创建Android manifest xml的主要内容,如果未能解决你的问题,请参考以下文章
phonegap 构建应用程序的 Manifest.xml 和 config.xml 之间的区别