因为<edit-config>标记在cordova plugin.xml文件中不起作用,所以我尝试使用这方法更新android:theme
<config-file target="res/xml/config.xml" parent="/*">
<application>
<preference name="android-theme" value="@style/Theme.AppCompat.NoActionBar"/>
</application>
</config-file>即使我将父程序设置为/Application或删除应用程序标记,此代码也无法工作
如何更改android清单中的“android主题”标记?
(虚拟代码):
<manifest>
<application>
<activity android:theme="@android:style/Theme.DeviceDefault.NoActionBar">
</application>
</manifest>更新
我已经更新到cordova 6.4.0并尝试使用以下示例代码:
<edit-config file="AndroidManifest.xml" target="/manifest/uses-sdk" mode="merge">
<uses-sdk android:minSdkVersion="16" android:maxSdkVersion="23" />
</edit-config>但是,当我尝试将它用于android:theme属性时,这是可行的:
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity" mode="overwrite">
<activity android:theme="@style/Theme.AppCompat.NoActionBar" />
</edit-config>它给出了这个java错误:
错误:无法读取未定义属性的“长度”
发布于 2016-12-16 09:11:38
使用Gandhi的答案,我将我的节点应用程序更新为最新版本,并将plugin.xml更新如下:
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity[@android:name='MainActivity']" mode="merge">
<activity android:theme="@style/Theme.AppCompat.NoActionBar" />
</edit-config>这是完美的!
发布于 2016-12-15 10:41:26
在将我的安装程序从Cordova 6.2升级到Cordova 6.4.0之后,我试用了它,它适合我。我在edit中尝试了合并模式和覆盖模式。
为了测试这个功能,我使用Cordova CLI创建了一个新的barebone项目。然后,我在项目中安装了cordova设备插件。安装插件后,我调整了cordova设备插件的plugin.xml,并在android平台标记中添加了以下内容:
<edit-config file="AndroidManifest.xml" target="/manifest/uses-sdk" mode="merge">
<uses-sdk android:maxSdkVersion="25" />
</edit-config>
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity[@android:name='MainActivity']" mode="overwrite">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.AppCompat.NoActionBar" android:windowSoftInputMode="adjustResize"/>
</edit-config>在调整了plugin.xml之后,我使用cordova platform add android命令添加了安卓平台。在成功添加了android之后,我打开了platform \android文件夹下的AndroidManifest.xml,并在其中更新了edit中提到的内容。XML文件如下:
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10000" android:versionName="1.0.0" package="io.cordova.hellocordova" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.AppCompat.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:maxSdkVersion="25" android:minSdkVersion="16" android:targetSdkVersion="24" />
</manifest>还试着删除和重新添加android平台,它可以工作。在您的示例中,您使用的是cordova 6.3.1,我不确定这是否与Cordova有关。希望你能升级到Cordova 6.4.0
另外,我的节点版本是6.9.2,cordova android版本是6.0.0
希望能帮上忙。干杯
发布于 2016-12-13 12:40:40
仅通过根据cordova-custom-plugin中的首选项更改平台配置数据,您就可以尝试使用为而特别制作的。
使用以下命令安装它,如特定插件链接中所述
如前所述,它将以下列方式应用属性android:theme
<preference name="android-manifest/application/activity/@android:theme" value="@android:style/Theme.AppCompat.NoActionBar"/>在你的android-manifest -- application -- activity里
https://stackoverflow.com/questions/41057290
复制相似问题