Ошибка раздувания фрагмента класса
Я получаю сообщение об ошибке
Когда я переключаюсь через портрет и ландшафтный режим. Я использую фрагменты. Мой xml:
Если я переключаюсь через пейзаж и портретный режим, все работает нормально. Но когда я нажимаю на свой фрагмент (и вижу мой фрагмент), а затем переключаюсь на другой режим, я получаю ошибку. Любая идея, как я могу это решить? Нашли здесь несколько ответов, но никто из них не помог мне …
Как сказал гдемирчян, обязательно используйте:
А также убедитесь, что активность, использующая фрагмент (ы), расширяет FragmentActivity вместо обычной Activity ,
Для получения класса FragmentActivity .
Исключение android.view.InflateException: Binary XML file line: #. Error inflating class fragment может произойти, если вы манипулируете с помощью getActivity() внутри вашего фрагмента до onActivityCreated() . В таком случае вы получаете неправильную ссылку на деятельность и не можете полагаться на нее.
Например, следующий шаблон неверен:
Правильный шаблон # 1
Правильный шаблон # 2
Убедитесь, что ваша Activity расширяет FragmentActivity .
У меня была такая же ошибка. Я копал весь день, не знаю, но я думаю, что я попробовал
25 решений по этой проблеме. Никто не работал, пока в 2AM я не узнал, что я пропустил эту строку в манифесте приложений xml:
У меня такая же проблема. Решением для меня был порядок super.onCreate и setContentView в FragmentActivity
Следующий порядок работает нормально:
У меня была такая же проблема, с которой вы столкнулись. Ни один из советов на вершине не помог мне. Позже я обнаружил, что все, что мне нужно было сделать, это исправить мои импорт из:
Убедитесь, что в методе onCreateView фрагмента нет исключений. Если в этом методе возникает какое-либо исключение, logcat не будет показывать точные сведения об исключении, вместо этого он всегда показывает сообщение:
Фрагменты не могут быть вложены в XML
Выучили этот трудный путь – если вы вставляете тег основе XML-макета внутри (потенциально) динамически загружаемого фрагмента из FragmentManager , то вы начинаете получать странные ошибки, пытаясь раздуть ваш фрагмент xml.
Оказывается, что это не поддерживается – он будет работать нормально, если вы сделаете это с помощью подхода FragmentManager .
Я получал эту проблему, потому что я пытался загрузить фрагмент внутри из xml, и это вызвало сбой в onCreateView() когда я вытащил задний стек.
Если ваш TaskDetailsFragment расширяет android.app.Fragment , измените значение onCreateView() .
Верните свой вид, который вы хотите показать во Фрагменте, или преобразуйте макет для просмотра с помощью LayoutInflater и верните его.
Надеюсь, это сработает. 🙂
Проверьте путь к классу, это может быть инфлятором представления, который не смог найти определение вашего класса, как определено в вашем классе xml = «de.androidbuch.activiti.task.TaskDetailsFragment», указанный выше путь может быть неправильным.
Для меня это было после прокрутки в трассе стека, я обнаружил, что у меня нет разрешения на android.permission.ACCESS_NETWORK_STATE
После добавления этого разрешения было исправлено
Если у вас есть отдельные файлы макета для портретных и ландшафтных режимов и вы получаете инфляционную ошибку, когда вы меняете ориентацию после нажатия на элемент, скорее всего, существует расхождение между вашими файлами макета.
Когда вы получаете сообщение об ошибке, это только когда вы нажимаете элемент в альбомном режиме или только в портретном режиме или на обоих? В вашей работе TaskDetailsFragment используется файл макета, который может иметь расхождения между ландшафтными и портретными режимами?
Я получал эту ошибку по разным причинам.
Действия по воспроизведению:
> Моя проблема заключалась в том, что я создал совершенно новое пустое приложение.
> Затем я создал пользовательский фрагмент из меню File
> Чтобы настроить фрагмент, добавив макеты и кнопки и т. Д.
> Ссылка на новый пользовательский фрагмент в автоматически сгенерированном файле activity_my.xml, который был создан для меня при создании приложения. Это позволило XML генерировать объекты для меня.
Heres – это улов при создании пользовательского фрагмента через File
> New File Menu, который автоматически генерирует заглушку функции интерфейса и помещает его в конец файла класса фрагмента.
Это означает, что ваш класс MyActivity должен реализовать этот интерфейс. Если это не так, указанная выше ошибка возникает только при ссылке на фрагмент из xml. Полностью удалив ссылку на фрагмент в XML и создав фрагмент через код в файле класса MyActivity.java, Logcat генерирует более сжатую ошибку, подробно объясняющую проблему и жалующуюся на интерфейс. Это показано в разделе «Шаблон проекта + фрагмент». Хотя
Имел такой же тип ошибки, где отображалось точно такое же сообщение об ошибке в logcat. Мне нужно было внести изменения в путь сборки Java, расположенный в Project->Properties . Я включил такие библиотеки Google Maps, как android-support-v4.jar и google-play-services.jar ; Однако я отсутствовал, включая их в ‘Build class path’ в меню опций ‘Order and Export’ . Может быть, ошибка здесь.
Попробуйте включить библиотеки в путь класса сборки.
Порядок, из которого создаются классы, также может вызвать ошибку, поэтому мой совет также должен попытаться изменить порядок пути построения. Ошибка исчезла, когда я использовал следующий порядок: ‘my_project_name/src’->’my_project_name/gen’->’Android Private Libraries’ . Последний блок содержит файлы jar, упомянутые ранее.
Моя проблема в этом случае была простым экземпляром исключения тупого нулевого указателя в одном из моих методов, который был вызван позже на жизненном цикле. Это вызывало для меня исключение «Ошибка раздувания класса». Короче говоря, не забудьте проверить дальнейшую работу по трассе стека исключений для возможной причины.
Как только я разрешил исключение нулевого указателя, мой фрагмент загрузился нормально.
Ни одно из упомянутых выше решений не помогло мне. В журнале я мог найти деталь исключения, как указано ниже:
Я сделал это, и мой код работал!
В вашем XML-файле просто используйте вместо тега. Надуватель пытается создать файл android.app.Fragment, из которого не будет выполняться API
Я получил эту ошибку при использовании ListFragment, но идентификатор списка был listView1 вместо списка.
«В вашем контенте должен быть ListView, атрибут id которого« android.R.id.list »
Просто такая же ошибка. Причиной моей была видимость моего класса фрагментов. Он был установлен на значение по умолчанию, должен быть общедоступным.
Не могли бы вы onCreateView методы onCreate и onCreateView ? У меня было точно такое же исключение, которое было вызвано исключением в методе onCreate , когда я исправил эту проблему, он исправил фрагмент класса раздувания Error.
Я получал эту ошибку в андроид-студии, проблема заключалась в том, что у моего фрагмента был относительный макет, а код в функции OnCreateView
Ваш код делает то же самое?
Если вы хотите наследовать AppCompatActivity , тогда вы можете сделать что-то вроде этого. В действии xml используйте FrameLayout,
И в деятельности onCreate –
Я получил ту же ошибку, но моя проблема заключалась в том, что у моего фрагмента не было идентификатора в макете xml родительской активности.
Если вы добавляете Fragment статически, то есть в xml, то вы, возможно, пропустили реализацию OnFragmentInteractionListener в своем классе Activity . Тогда реализация интерфейса решит проблему. Если вы добавляете Fragment динамически, то есть в класс java, это не решение. Поскольку сама IDE не позволит вам работать без реализации необходимых интерфейсов.
У меня была аналогичная проблема; После запуска примера AdMob я попытался вставить Объявления в свое приложение, вызвав эту ошибку:
Решение таково: вы не можете вставить фрагмент для объявления в ListActivity. Вместо этого я могу добавить его в FragmentActivity и в ActionBarActivity без каких-либо проблем.
Мое предложение: начать с примера AdMob и добавить в него свое существующее приложение: я бы сэкономил много времени .
Убедитесь, что вы использовали этот
Убедитесь, что ваша активность расширяет FragmentActivity или AppCompatActivity
Если ваш фрагмент является фрагментом списка, тогда действие, которое использует этот фрагмент, должно реализовать интерфейс onFragmentInteraction .
После того, как я добавил пустой конструктор, он будет разрешен.
Источник
Google Android — это несложно
Добро пожаловать на форум сайта
Error inflating class — не могу отловить баг
Error inflating class — не могу отловить баг
Сообщение blackdiamond » 26 мар 2013, 21:54
Уважаемые господа профи, помогите пож-ста с определением причины бага!
Кратко суть дела: запускаю приложение (игру) на реальном устройстве (телефоне, планшете) — все хорошо. На эмуляторе телефона — все хорошо, а вот на эмуляторе планшета 7 или 10.1 (эмулирую API8 и выше — без разницы) приложение не запускается и вылетает с ошибкой (об этом ниже).
Подумал, что это глюки эмулятора и выложил приложение на GooglePlay.
Несколько дней все было Ок, но вот сегодня увидел в консоли разработчика сбой (ANR) и лог ошибки такой же как был на эмуляторе планшетов при вылете приложения.
Поиск по Stack Overflow приводит к очен похожим багам, но до сути проблемы никто не дошел
(только в одном ответе есть совет установить в манифесте атрибут но у меня этот атрибут установлен и все-равно ошибка появляется)
Вот лог ошибки:
java.lang.RuntimeException: Unable to start activity ComponentInfo<тут_название_моего_пакета.GameActivity>: android.view.InflateException: Binary XML file line #1: Error inflating class
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class
at android.view.LayoutInflater.createView(LayoutInflater.java:518)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:209)
at android.app.Activity.setContentView(Activity.java:1657)
at тут_название_моего_пакета.GameActivity.onCreate(GameActivity.java:65)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
. 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
at android.view.LayoutInflater.createView(LayoutInflater.java:505)
. 21 more
Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue
at android.content.res.Resources.loadDrawable(Resources.java:1681)
at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
at android.view.View. (View.java:1951)
at android.view.View. (View.java:1899)
at android.view.ViewGroup. (ViewGroup.java:286)
at android.widget.RelativeLayout. (RelativeLayout.java:173)
. 24 more
Вот разметка xml файла (game_layout), которая грузится в GameActivity в методе onCreate:
Источник
андроид.вид.InflateException: двоичный XML-файл: ошибка раздувания фрагмента класса
у меня очень неприятная ошибка, которую я не могу объяснить. Я создал приложение для Android, которое использует Android AppCompat чтобы сделать его совместимым со старыми версиями. Вот мой основной файл макета активности:
и вот основной код моей деятельности :
основная проблема здесь: выше код работает плавно на почти устройствах (стимулированное устройство или некоторые реальные устройства). Но когда я запускаю его на Samsung S3. Он замечает эту ошибку:
пожалуйста скажите мне, как исправить ошибку, спасибо:)
27 ответов
после долгого времени для отладки я исправил эту проблему. (Хотя я до сих пор не могу объяснить, почему). Что я меняю собственность android:name to class . (хотя в документе Android они говорят, что эти свойства одинаковы, но он работает . )
Итак, он должен измениться от:
Итак, новый макет должен быть :
надеюсь, что это поможет 🙂
Я не мог решить мою проблему, используя предоставленные ответы. Наконец, я изменил это:
и это работает.
Если вы используете его внутри фрагмента, используйте getChildFragmentManager вместо getSupportFragmentManager.
это может больше не понадобиться вам, но если дальнейшие читатели найдут это полезным. У меня точно такой же android.view.InflateException. Error inflating class fragment . У меня были все нужные библиотеки. Решено, добавив еще одно разрешение пользователя в AndroidManifest.xml файл, т. е.
кстати, я бежал Android Studio 0.8.9 on Ubuntu 12.04.
у меня была такая же проблема, проблема, попробовал все ответы в этой теме без толку. Мое решение, я просто не добавили ID в XML-активности. Я не думал, что это будет иметь значение, но это имело.
Итак, в XML активности у меня было:
Если кто-то будет рад прокомментировать, почему это, я все уши, другим, я надеюсь, что это поможет.
у меня такая же проблема, потому что я не выполнил слушатель. Увидеть следующий код /*Add This!*/ .
FYI, мой класс фрагментов примерно следующий:
Я также замечаю это же сообщение об ошибке при других обстоятельствах, когда есть исключение в
ваш NavigationDrawerFragment расширяет android.поддержка.В4.приложение.Фрагмент? Другими словами, вы импортируете правильный пакет?
у меня также была эта проблема. Я решил это, заменив импорт в MainActivity и NavigationDrawerFragment
я MainActivity предоставляет ActionBarActivity вместо активности
использовать ActionBar actionBar = getSupportActionBar(); чтобы получить ActionBar
и я обновил следующую функцию в NavigationDrawerFragment
TL / DR: исключение во время создания фрагмента ссылка из XML макета более высокого уровня. Это исключение привело к сбою инфляции макета более высокого уровня, но первоначальное исключение не было сообщено; в трассировке стека отображается только сбой инфляции более высокого уровня. Чтобы найти первопричину, вы должны поймать и зарегистрировать начальное исключение.
первопричина ошибки могут быть самыми разными, поэтому здесь так много разных ответов на вопрос, что именно решило проблему для каждого человека. Для некоторых, это было связано с id , class или name атрибуты. Для других это было связано с проблемой разрешений или настройкой сборки. Для меня это не решило проблему; вместо этого был привлекательный ресурс, который существовал только в drawable-ldrtl-xhdpi , а не в соответствующем месте, как drawable .
но это только детали. Этот проблема в том, что сообщение об ошибке, которое появляется в logcat, не описывает исключение, которое запустило все это. Когда XML-файл макета более высокого уровня ссылается на фрагмент, фрагмент onCreateView() называется. Когда исключение происходит в фрагменте onCreateView() (например, при раздувании XML-макета фрагмента) это приводит к сбою инфляции XML-макета более высокого уровня. Этот сбой инфляции более высокого уровня-это то, что сообщается как исключение в журналах ошибок. Но первоначальное исключение, похоже, не продвигается по цепочке достаточно хорошо, чтобы быть сообщенным.
учитывая эту ситуацию, вопрос заключается в том, как выставить начальное исключение, когда оно не отображается в журнале ошибок.
решение довольно простое: поместите try / catch блокировать содержимое фрагмента onCreateView() и в catch п., бревно за исключением:
это может быть не очевидно , который фрагмент класс onCreateView() чтобы сделать это, в этом случае сделайте это для каждого класса фрагментов, используемого в макете, который вызвал проблему. Например, в случае OP код приложения, в котором произошло исключение, был
поэтому вам нужно поймать исключения в onCreateView() любых фрагментов, указанных в макете activity_main .
в моем случае исключение первопричины оказалось
это исключение не появляются в журнале ошибок, пока я не поймал его в onCreateView() и зарегистрировал его явно. Как только он был зарегистрирован, проблема была достаточно проста для диагностики и исправления ( details_view.xml существовал только под ldrtl-xhdpi папке, по какой-то причине). Ключом было поймать исключение, которое было корнем проблемы, и разоблачить его.
это не помешает сделать это в качестве шаблона в все фрагменты’ onCreateView() методы. Если там есть необработанное исключение, это приведет к сбою активности не обращающий внимания. Единственное отличие заключается в том, что если вы поймаете и зарегистрируете исключение в onCreateView() , вы не будете в темноте, почему это произошло.
P. S. Я просто понял, что этот ответ имеет отношение к @DaveHubbard, но использует другой подход для нахождения первопричины (лесозаготовка и отладчик).
У меня были похожие проблемы. Сообщение об ошибке часто содержит очень мало деталей, независимо от фактической причины. Но я нашел способ получить больше полезной информации. Оказывается, что внутренний android-класс «LayoutInflater».java ‘ (в android.view package) имеет метод «inflate», который повторно создает исключение, но не подбирает детали, поэтому вы теряете информацию о причине.
я использовал AndroidStudio и установил точку останова на линии LayoutInflator 539 (в версии я working in), который является первой строкой блока catch для общего исключения в этом методе «inflate»:
Если вы посмотрите на » e «в отладчике, вы увидите поле «причина». Это может быть очень полезно, давая вам подсказку о том, что действительно произошло. Вот как, например, я обнаружил, что родитель включенного фрагмента должен иметь идентификатор, даже если он не используется в вашем коде. Или что у TextView была проблема с измерением.
на всякий случай, если кому-то это нужно. Предположения: телефон устройства подключен к USB-кабелю и чтение IDE для запуска приложение. Перейдите в командную строку, чтобы определить проблему: введите adb logcat
затем запустите приложение из IDE. Вы будете исключением.
в моем случае: я развертывал приложение Android версии 2.3 на мобильном устройстве что не поддерживает виджет «пробел»
эта проблема возникает, когда у вас есть пользовательский класс, который расширяет другой класс (В данном случае зрения), а не импортировать все конструкторы требуемого класса.
например: открытый класс CustomTextView расширяет TextView
этот класс будет иметь 4 конструктора, и если вы пропустите какой-либо из них, он рухнет. На самом деле я пропустил последний, который использовался Lollipop, добавил, что конструктор и работал нормально.
я столкнулась с этой проблемой и решил ее, используя следующие коды. Я начинал транзакцию фрагментов с помощью childfragment manager.
вот как я начал фрагмент транзакции:
В следующих кодах объясняется, как я удалил фрагмент, добавленный с помощью childfragmentmanger.
нам также необходимо добавить следующее в build.gradle (app)
всякий раз, когда мы используем новые макеты и новые конструктивные особенности. надеюсь, это поможет вам.
после того, как ни один из ответов здесь не помог мне, я решил запустить приложение в режиме отладки, перемещаясь по каждой строке onCreateView в моем фрагменте (NavigationDrawerFragment в вашем случае). И заметил, что фрагмент испытывал трудности с раздуванием из-за исключения NullPointerException. Е. Г.
здесь mySeekBar был установлен в null (потому что я пропустил добавление элемента управления в соответствующем макете), и следующая строка попала в NPE, который вышел как InflateException. Также, как предложено выше переименуйте android: имя в класс.
эта проблема может возникнуть по различным причинам, упомянутым выше. Я бы рекомендовал линейный поток отладки, чтобы знать, что не так.
Я не знаю, поможет ли это.
У меня была эта проблема с TextView, который у меня был в макете, который я пытался надуть (android.вид.InflateException: двоичная строка XML-файла #45: ошибка раздувания класса TextView).
Я установил следующий атрибут XML android: textSize=»?android: attr / textAppearanceLarge» что не позволяло раздуть макет.
Не знаю точно, почему, (Я все еще немного нового Android-менее года опыта работы), может быть, что-то связано с вызовом системных атрибутов, idk, все, что я знаю, как только я использовал простой старый @dimen / md_text_16sp (что обычай мой), проблема решена 🙂
надеюсь, что это помогает.
Я немного опоздал на вечеринку, но не из этих ответов помог мне в моем случае. Я использовал Google map как SupportMapFragment и PlaceAutocompleteFragment оба в моем фрагменте. Как все ответы указывали на то, что проблема с SupportMapFragment карту быть воссозданы и перерисовывается.
но у меня также была проблема с PlaceAutocompleteFragment. Так вот рабочее решение для тех, кто столкнулся с этой проблемой из-за SupportMapFragment и SupportMapFragment
и в onDestroyView очистить SupportMapFragment и SupportMapFragment
Я думаю, что основная проблема заключается в» android:targetSdkVersion», который определен в AndroidManifest.XML. В моем случае начальное значение, которое я определил как:
Я изменил его на:
, который разрешил все мои ошибки. Таким образом, настройка правильного «targetSdkVersion» также важна перед созданием приложения для android.
в случае, если кто-то еще сюда заходит и ответы не помогают решить проблему, еще одна вещь, чтобы попробовать.
Как упоминали другие, это обычно вызвано проблемой, вложенной в сам XML, в отличие от того, что вы сделали неправильно в своей Java. В моем случае это была очень простая (и глупая) ошибка.
У меня был такой код:
когда все, что мне нужно было сделать, это прописать v в «View», чтобы система его узнала. Проверьте, что ваш пользовательские представления (или фрагменты, recyclerviews и т. д.) имеют правильное объявление с заглавной буквы, чтобы автозаполнение XML соответствовало соответствующему представлению.
для некоторых из вас, которые до сих пор не нашли решения для этого, в моем случае это происходило, потому что у меня была проблема OOM (из памяти). Это может произойти, когда у вас есть, например, утечка памяти в вашем приложении при его использовании в течение длительного времени. В моем stack trace это было главной причиной.
у меня было это на устройстве 4.4.2, но 5+ был в порядке. Причина: внутри инициализации пользовательского представления я создавал TextView(Context context, AttributeSet attrs, @AttrRes int defStyleAttr, @StyleRes int defStyleRes) , который является API 21+.
Android Studio 2.1 не жалуется на это, хотя он аннотирован TargetApi(21) . По-видимому, Android Studio 2.2 исправит это и правильно покажет его как ошибку.
надеюсь, это кому-то поможет.
У меня тоже была эта ошибка, и после очень долгой отладки проблема заключалась в том, что моя расширенная активность MainClass вместо FrameActivity в моем случае xml не была проблемой. Надеюсь помочь вам.
как упоминалось в предыдущем посте,
переименовать
тем не менее, это не сработало для меня. Затем я просто использовал имя класса без com.фрагмент части и вуаля это сработало. Поэтому измените его, наконец, на
макет я пытался надуть было
тег, удалив его починил.
Я пытался надуть предыдущий макет, предназначенный для Actvity в адаптер view-pager.
моя ошибка была вызвана другой проблемой.
Я передавал пучок от действия к его фрагменту. Когда я прокомментировал код, получающий пакет во фрагменте, ошибка исчезла. Как оказалось, моя ошибка была связана с приведенной ниже частью» getArguments ();», которая возвращала null.
проверив код отправки активности, я понял, что у меня была глупая ошибка ниже;
Я создавал новый фрагмент в строке с стрелка. В то время как я должен был использовать предварительно созданный фрагмент, у которого уже был мой сверток. Так и должно было быть:—4—>
Я не знаю, почему именно он выдает эту ошибку вместо NPE, но это решило мою ошибку, если у кого-то есть тот же сценарий
У меня была та же проблема, в моем случае имя пакета было неправильным, исправление его решило проблему.
после долгого времени попыток, вот как я решил проблему после того, как ни один из вышеперечисленных ответов не мог.
- расширения AppCompatActivity для Main вместо Activity .
- добавить android:theme=»@style/Theme.AppCompat.Light» на на AndroidManifest.xml
в своем NavigationDrawerFragment класс, изменить свой ActionBar экземпляров
редактировать
это должно быть согласованностью между активность и планировка. Если планировка один из Тема AppCompat, такие как Theme.AppCompat.Light ваш активность должны extends AppCompatActivity .
я хотел иметь бургер и Панель Навигации это похоже на Android Gmail Приложение, но я закончил с уродливым Панель Навигации. Все это потому, что все мои классы extends Activity вместо AppCompatActivity .
я пересчитал весь проект, чтобы продлить AppCompatActivity , затем щелкните правой кнопкой мыши на Layout Folder выбрал new -> Activity затем Navigation Drawer Activity и бум, все сделано для меня!
Источник