首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cordova 6.3.1 plugin.xml套装安卓-主题不起作用

Cordova 6.3.1 plugin.xml套装安卓-主题不起作用
EN

Stack Overflow用户
提问于 2016-12-09 09:39:36
回答 3查看 1.5K关注 0票数 2

因为<edit-config>标记在cordova plugin.xml文件中不起作用,所以我尝试使用方法更新android:theme

代码语言:javascript
复制
<config-file target="res/xml/config.xml" parent="/*">
  <application>
    <preference name="android-theme" value="@style/Theme.AppCompat.NoActionBar"/>
  </application>
</config-file>

即使我将父程序设置为/Application或删除应用程序标记,此代码也无法工作

如何更改android清单中的“android主题”标记?

(虚拟代码):

代码语言:javascript
复制
<manifest>
  <application>
    <activity android:theme="@android:style/Theme.DeviceDefault.NoActionBar">
  </application>
</manifest>

更新

我已经更新到cordova 6.4.0并尝试使用以下示例代码:

代码语言:javascript
复制
<edit-config file="AndroidManifest.xml" target="/manifest/uses-sdk" mode="merge">
    <uses-sdk android:minSdkVersion="16" android:maxSdkVersion="23" />
</edit-config>

但是,当我尝试将它用于android:theme属性时,这是可行的:

代码语言:javascript
复制
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity" mode="overwrite">
    <activity android:theme="@style/Theme.AppCompat.NoActionBar" />
</edit-config>

它给出了这个java错误:

错误:无法读取未定义属性的“长度”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-16 09:11:38

使用Gandhi的答案,我将我的节点应用程序更新为最新版本,并将plugin.xml更新如下:

代码语言:javascript
复制
<edit-config file="AndroidManifest.xml" target="/manifest/application/activity[@android:name='MainActivity']" mode="merge">
   <activity android:theme="@style/Theme.AppCompat.NoActionBar" />
</edit-config>

这是完美的!

票数 0
EN

Stack Overflow用户

发布于 2016-12-15 10:41:26

在将我的安装程序从Cordova 6.2升级到Cordova 6.4.0之后,我试用了它,它适合我。我在edit中尝试了合并模式和覆盖模式。

为了测试这个功能,我使用Cordova CLI创建了一个新的barebone项目。然后,我在项目中安装了cordova设备插件。安装插件后,我调整了cordova设备插件的plugin.xml,并在android平台标记中添加了以下内容:

代码语言:javascript
复制
<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文件如下:

代码语言:javascript
复制
<?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

希望能帮上忙。干杯

票数 3
EN

Stack Overflow用户

发布于 2016-12-13 12:40:40

仅通过根据cordova-custom-plugin中的首选项更改平台配置数据,您就可以尝试使用为而特别制作的

使用以下命令安装它,如特定插件链接中所述

如前所述,它将以下列方式应用属性android:theme

代码语言:javascript
复制
<preference name="android-manifest/application/activity/@android:theme" value="@android:style/Theme.AppCompat.NoActionBar"/>

在你的android-manifest -- application -- activity

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41057290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档