1

我需要你的帮助来解决关于AppCompat主题的问题。我的MainActivity从AppCompatActivity衍生,主题是在清单中声明,但是我编译时出现此错误:AppCompat主题

Java.Lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

这是包含主题文件:

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- your app branding color for the app bar --> 
    <item name="colorPrimary">#3F51B5</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="colorPrimaryDark">#303F9F</item> 
    <!-- theme UI controls like checkboxes, text fields and switchcompat button--> 
    <item name="colorAccent">#00FFFF</item> 
    </style> 

这是清单:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test_vp.test_vp" android:versionCode="1" android:versionName="1.0" android:installLocation="auto"> 
    <uses-sdk android:minSdkVersion="16" /> 
    <uses-feature android:name="android.hardware.wifi" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <application android:label="@string/ApplicationName" android:theme="@style/MyTheme"> 

    </application> 
</manifest> 

你知道我该怎么解决它? 预先感谢您

+0

您是否在Manifest中声明了该活动?我没看到它。 –

+0

它也没有它,因为这是由Xamarin生成的清单。我只添加了权限和应用程序标签。 –

回答

0

变化的第一行代码告诉你:

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 

<style name="MyTheme" parent="@android:style/Theme.AppCompat.Light.NoActionBar"> 

而且,这里面的风格定义是你把孩子定义为仅你定义了颜色等特征。这是一个嵌套定义的例子。让我尝试澄清一些事情:

首先定义你的主要风格,这是指您的辅助风格:

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item> 
</style> 

,在你工作的这个相同的XML,下面你定义此风格,它是在这里你选择颜色等。注意与这个孩子主题的名称 - 必须是你在父母上引用的相同:

<style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.ActionBar"> 
<item name="colorPrimary">#3F51B5</item> 
</style> 

在某些情况下,您将不得不深入此嵌套,通过详细的步骤定义事情。要恢复:您不能直接更改内容,必须指定您想要自定义的每个详细部分。

+0

它抛出错误检索项目的父项:找不到匹配给定名称的资源'@android:style/Theme.AppCompat.Light.NoActionBar' –

+0

您是否导入了支持库?并且您的** theme.xml **必须位于** res/values **文件夹内,并且您提供的代码最好位于标记内。 – statosdotcom

+0

我的theme.xml位于文件夹values-v21,是的,我已经导入了AppCompat v7支持库版本23.2.1 –

0

尝试:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"></style>

它在支持的lib,所以ommit的 “机器人” 的一部分。

+0

它不工作...同样的错误 –

相关问题