Подтвердить что ты не робот

Как удалить библиотеку поддержки (appcompat_v7) [Eclipse]

Недавно я обновил плагин eclipse и ADT до последней версии и узнал некоторые большие изменения. Всякий раз, когда я создаю новый проект приложений для Android, появляется новая библиотека appcompat_v7, которой раньше не было, а также файл fragment_main.xml. Почему это? Почему файл activity_main.xml больше не предпочтителен для компоновки действий и почему библиотека appcompat теперь включена в каждый проект? Я пытался удалить eclipse/adt/sdk много раз и удалить библиотеку поддержки из sdk-менеджера, но не получил никакого результата! Я понимаю, что это имеет какое-то отношение к панели действий, но проблема в том, что всякий раз, когда я создаю новый проект, красный восклицательный знак появляется как в файле проекта, так и в файле appcompat_v7, и это мешает мне скомпилировать/запустить приложение или даже иногда appcompat_v7 file doesn ' t, и единственное, что я получаю, - это поврежденный код здесь: http://i.stack.imgur.com/XJMfW.png

так как я могу удалить эту зависимость и спасибо

4b9b3361

Ответ 1

Почему это?

Поскольку инженеры Google добавили этот материал к шаблонам новой активности, по крайней мере, для "BlankActivity".

Почему файл activity_main.xml больше не рекомендуется для отображения активности.

Вы, безусловно, можете использовать activity_main.xml для всех, что хотите. Так получилось, что текущие шаблоны Google хотят, чтобы вы использовали фрагменты. Шаблоны Google - это просто шаблоны. Можно спорить - и я, яростно, что шаблон "BlankActivity" не должен делать то, что он делает. Однако, помимо этого, это всего лишь шаблон.

почему библиотека appomppat теперь включена в каждый проект?

Предположительно, они хотели, чтобы вы начали с последовательной панели действий, даже на более старых уровнях API.

Я понимаю, что это имеет какое-то отношение к панели действий, но проблема в том, что всякий раз, когда я создаю новый проект, красный восклицательный знак появляется как в файле проекта, так и в файле appcompat_v7, и это мешает мне скомпилировать/запустить приложение или даже иногда appcompat_v7 файл не создается, и единственное, что я получаю, - это поврежденный код

Я сообщил эту проблему неделю назад.

так как я могу удалить эту зависимость

Шаг # 1: Щелкните правой кнопкой мыши над именем проекта в Проводнике пакетов и выберите "Свойства". Нажмите на Android в списке категорий свойств слева и прокрутите вниз вправо:

Eclipse Project Properties, Android Category

Шаг №2: В списке проектов, связанных с библиотекой, которые вы увидите в диалоговом окне свойств, вы можете увидеть запись, похожую на "appcompat_v7_6", которую вы видите на приведенном выше снимке экрана. Ваша последняя цифра будет отличаться, и может случиться так, что у вас есть красный X вместо зеленой галочки. Независимо от того, если в списке есть запись для "appcompat_v7_NNN", нажмите на нее, затем нажмите кнопку "Удалить" справа от списка. Затем нажмите кнопку "ОК", чтобы закрыть диалоговое окно.

Шаг №3: В res/values/styles.xml измените родительский элемент AppBaseTheme с Theme.AppCompat.Light на @android:style/Theme.Light. В res/values-v11/styles.xml измените родительский элемент AppBaseTheme с Theme.AppCompat.Light на @android:style/Theme.Holo.Light. В rest/values-v14/styles.xml измените родительский элемент AppBaseTheme с Theme.AppCompat.Light.DarkActionBar на @android:style/Theme.Holo.Light.DarkActionBar. Обратите внимание, что эти значения предполагают, что при создании проекта вы выбрали стандартную "Светлую тему с темной панелью действий" - вам нужно будет внести небольшие корректировки в эти инструкции для чего-либо еще.

Шаг 4: В res/menu/main/xml удалите xmlns:app="http://schemas.android.com/apk/res-auto" из корневого элемента <menu> и атрибута app:showAsAction="never" из элемента <item>.

Шаг № 5: В вашей деятельности (например, MainActivity) изменить родительский класс активности на нечто, отличное от ActionBarActivity - FragmentActivity, было бы хорошим выбором, чтобы свести к минимуму количество других изменений вам придется немедленно сделать это. Кроме того, очистите свой импорт (например, Ctrl-Shift-O).

В этот момент, помимо очистки вашего проекта (Project > Clean из главного меню), материал appcompat должен быть вырван из проекта, созданного с использованием шаблона "BlankActivity", и с помощью "Тип навигации" "Никто". Другие шаблоны или варианты навигации в шаблоне "BlankActivity", вероятно, потребуют больше работы.

Ответ 2

Лучшие способы решения этих проблем:

  • Во-первых, в проекте Right click->properties->Android. см. red marked appcompat, помещенный в Reference. Щелкните это и Удалите его.

  • Удалите файл fragment_main.xml и Appompat, созданный в вашем Eclipse.

  • Отредактируйте и измените свой activity_main.xml следующим образом:

    <?xml version="1.0" encoding="utf-8"?>
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
    </RelativeLayout>
    
  • В res/values ​​/styles.xml:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    
  • В res/values-v11/styles.xml вам нужно изменить, как это:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    
  • В res/values-v14/styles.xml вам необходимо изменить, как это:

      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
  • Измените меню /main.xml:

    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="@string/action_settings"/>
    
    </menu>
    
  • Наконец, замените MainActivity.java следующим образом:

    import android.app.Activity;
    import android.os.Bundle;
    
    
    public class MainActivity extends Activity {
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    }
    
    }
    

LikeWise вы должны сделать это для создания нового проекта