我正在尝试在我的Xamarin.Android应用中使用CoordinatorLayout
。我一直在使用Theme.Material.Light
作为其父级的自定义主题,在我添加CoordinatorLayout
之前工作正常。当我添加它时,我收到一个错误,告诉我必须使用Theme.AppCompat
主题,但是一旦我执行该应用程序无法构建并给我以下错误:
/{project directory}/Resources/values/Styles.xml(0,0):
Error APT0000: Error retrieving parent for item:
No resource found that matches the given name
'@android:style/Theme.AppCompat'. (APT0000) (TnpApp.Android)
This answer建议安装与我正在使用的Android SDK相匹配的支持库的主要版本。我试过这个(我认为我做的一切都正确),但它没有帮助。
有没有人有任何想法?
我在Mac上使用Xamarin Studio。
更新1
我在一个干净的Xamarin.Android项目中尝试了MainActivity.cs
中的以下代码,并且构建失败并出现相同的错误。
namespace ThemeTest
{
[Activity(Label = "ThemeTest", MainLauncher = true, Icon = "@mipmap/icon", Theme = "@android:style/Theme.AppCompat.Light")]
public class MainActivity : Activity
{
// ...
}
}
更新2
我删除了/user/.local/share/Xamarin
中的所有文件夹,但Mono for Android
和zips
除this answer中的建议。我关闭了Xamarin Studio并重新打开它。我尝试部署该应用程序,Xamarin重新安装了所有软件包,但构建失败并出现原始错误。
答案 0 :(得分:1)
我只需从我的Styles.xml文件中的@android:style/
元素的style
标记中删除parent
即可解决此问题。看起来像这样......
<style name="MyCustomTheme" parent="@android:style/Theme.AppCompat">
现在看起来像这样......
<style name="MyCustomTheme" parent="Theme.AppCompat">
我很震惊解决方案就是这么简单,但它确实有效。 :)我从this code得到了这个想法。
答案 1 :(得分:0)
我在Visual Studio 2015 / Xamarin中开发并看到了同样的问题。虽然我仍然不了解这个问题的原因或解决方法,但是这个线程确实指出了我正确的方向,这似乎与重新保存styles.xml(对于我的开发环境)有关。
我的styles.xml没有@android:style/
,我仍然遇到上面提到的错误。如另一个提议的解决方案中所述,我添加了
<style name="MyCustomTheme.Base" parent="Theme.AppCompat" />
在<style name="MyCustomTheme" parent="Theme.AppCompat">
之前,保存了styles.xml并重建了我的项目而没有错误。然后我删除了
<style name="MyCustomTheme.Base" parent="Theme.AppCompat" />
,
重新保存styles.xml并重建,没有错误。在视觉上,我的styles.xml没有改变,但错误消失了。
答案 2 :(得分:0)
如果您最近安装了 google play服务相关软件包(例如firebase,但还有很多其他软件包),则此安装可能与您的 CSproj 相混淆和你的 package.json 文件(查看你的版本控制历史记录以查看这些文件是否被更改),并修改你的目标api版本:从目标Api 25转到目标26例如等。
如果是这种情况,您应该通过以下两种方式之一来解决此问题:
请确保下载您当前定位的sdk版本,为此,请转到工具&gt; SDK管理员。
或通过放弃软件包对csproj和package.json文件所做的更改并清理并重建来恢复到旧目标。