设置自定义Android主题时出错

时间:2017-06-14 16:47:30

标签: c# android xml xamarin

当我尝试通过AndroidManifest设置主题时出现错误。在构建时,错误是" 找不到与给定名称匹配的资源(在'主题'有价值' @ styles / MainApplicationStyle')"

我已经清理了项目,并重建了几次。我也从编译器收到消息和警告,其形式为"无法找到元素'(此处属性)的架构信息。'所有这些消息和警告都来自AndroidManifest。

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
          package="TheTipApp.TheTipApp" android:versionCode="1" 
          android:versionName="1.0" android:installLocation="auto">

    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <application android:label="TheTipApp" />
    <application android:theme="@styles/MainApplicationStyle"/>
</manifest>

styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="MainApplicationStyle" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  </style>
</resources>

我还尝试在AssemblyInfo.cs文件中设置主题,不确定它是否可能造成问题。

的AssemblyInfo.cs

[assembly: AssemblyTitle("TheTipApp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TheTipApp")]
[assembly: AssemblyCopyright("Copyright ©  2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Application(Theme = "@styles/MainApplicationStyle")]

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

我不确定这是否与此有关,但我也有 Xamarin.Android.Support.v7.AppCompat Xamarin.Android.Support.v4 < / strong>已安装。

1 个答案:

答案 0 :(得分:0)

您需要使用@style代替@styles。其次,您的<application>

中只应有一个AndroidManifest.xml节点
  

只需要<manifest><application>个元素。它们必须存在且只能出现一次。

来源:https://developer.android.com/guide/topics/manifest/manifest-intro.html#filec