2016-08-16 2 views
3

Я хочу создать приложение с Material Design с помощью Xamarin и Visual Studio. Я хочу достичь этого, используя библиотеку v7 AppCompat, поэтому мое приложение хорошо работает на старых устройствах.Xamarin - Ошибка получения родительского элемента для элемента: Ресурс не найден, который соответствует указанному имени «Theme.AppCompat.Light.DarkActionBar»

Я после этого учебника:

https://blog.xamarin.com/android-tips-hello-material-design-v7-appcompat/

и сделал точно так же,. Когда я иду в файл Main.axml (в папке Resources/layout) есть выпадающее меню, где вы можете выбрать тему (рисунок ниже). Однако, когда я открываю раскрывающееся меню, моя тема не появляется. Поэтому я подумал, что было бы неплохо очистить и перестроить мой проект. Но когда я убирал проект, я получил эту ошибку:

Error retrieving parent for item: No resource found that matches the given 
name 'Theme.AppCompat.Light.DarkActionBar'. 

No resource found that matches the given name: attr 'colorAccent'. 
No resource found that matches the given name: attr 'colorPrimary'. 
No resource found that matches the given name: attr 'colorPrimaryDark'. 
No resource found that matches the given name: attr 'windowActionBar'. 
No resource found that matches the given name: attr 'windowNoTitle'. 

Как я могу это исправить и сделать мою тема появляется в выпадающем меню?

EDIT:

Вот код:

Main.axml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<Button 
    android:id="@+id/MyButton" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/Hello" /> 
</LinearLayout> 

values/styles.xml

<resources> 
    <style name="MyTheme" parent="MyTheme.Base"> 
    </style> 
    <style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">#2196F3</item> 
    <item name="colorPrimaryDark">#1976D2</item> 
    <item name="colorAccent">#FF4081</item> 
    </style> 
</resources> 

values-v21

<resources> 
    <style name="MyTheme" parent="MyTheme.Base"> 
    <item name="android:windowContentTransitions">true</item> 
    <item name="android:windowAllowEnterTransitionOverlap">true</item> 
    <item name="android:windowAllowReturnTransitionOverlap">true</item> 
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> 
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item> 
    </style> 
</resources> 

MainActivity.cs

using System; 
using Android.App; 
using Android.Content; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using Android.OS; 

namespace MaterialDesign 
{ 
    [Activity(Label = "MaterialDesign", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : Activity 
    { 
     int count = 1; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.Main); 

      Button button = FindViewById<Button>(Resource.Id.MyButton); 
      button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); }; 
     } 
    } 
} 

Примечание:

Кроме того, когда я использую android.support.v7.widget.Toolbar элемент, я получил следующее сообщение об ошибке: android.support.v7.widget.Toolbar element is not declared.

EDIT (2):

Я пытался его загрузку с диспетчером компонентов, с помощью команды NuGet (Package Manager Console) и вручную загрузить DLL файлы и ссылки на них, но он по-прежнему не работает. Я также удалил папку \AppData\Local\Xamarin\Android.Support.v7.AppCompat\23.0.1.3 и удалил кеш, но без succes.

И в Main.axml файла на вкладке дизайнера, появляется предупреждение:

This project contains resources that were not compiled successfully, 
rendering might be affected 

я узнал, что проблема с Visual Studio Designer, как она работает должным образом на моем телефоне. Поэтому я задал новый вопрос: Xamarin.Android, Visual Studio - Designer doesn't work with v7 AppCompat library

Здесь вы можете скачать мой проект:

https://drive.google.com/file/d/0BxiDy9-wQHvzNFRhaTMzelg1WlU/view?usp=sharing

(простите за плохой английский, не стесняйтесь, поправьте меня)

+0

Для лучшего понимания проблемы вставьте код. –

+1

Где вы применяете тему? В вашем 'AndroidManifest.xml'? Попробуйте уничтожить папки «bin/obj», «Очистить проект» и «Восстановить». Также убедитесь, что ваш пакет V7 AppCompat' NuGet указан соответствующим образом. –

+0

@JonDouglas Я применяю тему в 'AndroidManifest.xml'. Я дернул папки 'bin' и' obj'. Я очистил и восстановил свой объект. Я получил те же ошибки, что и раньше: «Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени« Theme.AppCompat.Light.DarkActionBar'.' (подробнее в начале моего вопроса). Когда я ударил rebuild, я получил эту ошибку: '1> java.lang.UnsupportedClassVersionError: com/android/dx/command/Main: Unsupported major.minor version 52.0' (подробности в разделе редактирования (2) моего вопроса) , К сожалению, это не сработало :( – qwertytrewq

ответ

0

Это не имеет ничего общего с код. Это просто, что Visual Studio в момент написания не поддерживает пользовательские представления.

Просто используйте Xamarin Studio или этот плагин https://visualstudiogallery.msdn.microsoft.com/9f5a516a-f4d0-4228-9d25-d0273abebf33 Итак, вы можете редактировать свои приложения в Android Studio.

См. Xamarin.Android, Visual Studio - Designer doesn't work with v7 AppCompat library для получения более подробных ответов.

Смежные вопросы

 Смежные вопросы