Android Studio в Ubuntu 18.04: фрагменты не найдены ... Как «создать один или несколько фрагментов в коде»? - PullRequest
0 голосов
/ 30 сентября 2019

Сценарий

Я начинаю изучать разработку Android на моем ноутбуке с Ubuntu, но у меня возникают проблемы с созданием макетов с фрагментами.

Выполненные шаги

  1. Я создал новый проект с Пустой активностью
  2. Я щелкнул правой кнопкой мыши мой приложение папка и выполнено: Создать> Фрагмент> Фрагмент (пусто) ,
    • Именовано TestingFragment
    • Не проверено " Включить методы фабрики фрагментов?"
    • Не проверено" Включить обратные вызовы интерфейса?"
  3. Под res> макет Я обновил фрагмент ( frag_testing ), чтобы распознать его в рамках основной активности
  4. Я пошел в файл activity_main.xml , добавил FrameLayout в макет
  5. Я пытался перетащить компонент <фрагмент> в FrameLayout
  6. Iполучить сообщение об ошибке только с помощью кнопки OK :

    Фрагменты не найдены
    Сначала необходимо создать один или несколько фрагментов в коде.

My Best Guess

Похоже, моя Android-студия не распознает, что у меня создан фрагмент кода, и мне просто нужно добавить его в макет.
Возможно, мне нужно настроить сценарии Gradle , чтобы можно было найти класс TestingFragment ?

То, что я пробовал из Googling Around

  1. Я установил, удалил и переустановил Android Studio с помощью Snapcraft
  2. Я установил, удалил и переустановил Android Studio с помощью android-studio-ide-191.5791312-linux.tar.gz с официального сайта загрузки Android в каталоге / opt .
  3. Я убедился, что все плагины проверены с помощью Файл> Настройки> Плагины
  4. Я подтвердил, что мое Местоположение Android SDK указывает на нужную папку через Инструменты> SDK Manager .
    Под Платформы SDK установлены и проверены следующие SDK:
    • Android 10.0 (Q)
    • Android 7.1.1 (Nougat)
    • Android 7.0 (Nougat)
  5. Я пробовал Файл> Неправильные кэши / перезапуск... : выбрана кнопка Invalidate and Restart
  6. Я попробовал Файл> Синхронизировать проект с файлами Gradle .
  7. Я попытался Файл> Синхронизировать с файловой системой параметр

Редактировать:
Мне удалось перейти в XML main_activity Разметьте файл и добавьте тег фрагмента вручную и обнаружите, что он может работать. Вот тег руководства, который мне удалось добавить:

<fragment
        android:id="@+id/fragment"
        android:name="android.example.testfragments.ListFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout="@layout/fragment_list" />

Все еще работаю над исправлением проблемы перетаскивания " Не найдено фрагментов ".

Куда пойтиотсюда?

Кто-нибудь знает, куда я могу пойти отсюда, кроме виртуализации другой ОС, такой как Windows, чтобы посмотреть, работает ли она там?

1 Ответ

0 голосов
/ 01 октября 2019

Решение

Итак, после нескольких часов ковыряния в настройках и поиска в Google, я обнаружил причину, по которой он не работал случайно.

При создании нового проекта приложение Имя пакета поле не может следовать шаблону " android.example.packageName ".

После того, как я так долго терпел неудачу, я решил попробовать новый проект и изменить все параметры, чтобы полностью начать заново с нуля. В ходе этого процесса я изменил имя пакета на « com.frags.testing ».

Затем я приступил к описанным выше шагам, чтобы создать фрагмент, и мне удалось успешно добавить фрагмент с помощью метода перетаскивания в макет main_activity .

Я также подтвердил, что это сработало, вернувшись к моему предыдущему проекту, где он не работал, и создав новый пакет с именем фрагментов и реорганизовав класс фрагмента вэтот новый пакет. Затем я вернулся к макету main_activity и перетащил компонент <фрагмент> в макет, и он успешно нашел фрагмент.

Надеюсь, это поможет кому-то еще.

Ура,

Джастин

...