android.support.v7.widget.Toolbar 클래스를 확장하는 중에 오류가 발생 했습니까?


82

이 방법 에 따라 내 앱의 머티리얼 디자인을 얻으려고합니다 .

앱을 실행할 때마다 다음 오류가 표시됩니다.

android.support.v7.widget.Toolbar 클래스를 확장하는 중에 오류가 발생했습니다.

appcompat을 제대로 추가했는지 확인했습니다. 그러나 그것은 모두 나에게 정확합니다. 그래서 내가 뭘 잘못하고 있는지 말 해주세요.

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.2'

    defaultConfig {
        applicationId "io.bxbxbai.feedlistviewdemo"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles 'proguard-rules.pro'
        }
    }
}

configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':materialDesign')
    compile 'com.balysv.materialmenu:material-menu:1.4.0'
    compile 'com.android.support:appcompat-v7:21.+'
}

Logcat

02:11.641  20583-20583/io.bxbxbai.feedlistviewdemo E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: io.bxbxbai.feedlistviewdemo, PID: 20583
    java.lang.RuntimeException: Unable to start activity ComponentInfo{io.bxbxbai.feedlistviewdemo/io.bxbxbai.androiddemos.MainActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class android.support.v7.widget.Toolbar
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2224)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class android.support.v7.widget.Toolbar
            at android.view.LayoutInflater.createView(LayoutInflater.java:620)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
            at io.bxbxbai.androiddemos.MainActivity.onCreate(MainActivity.java:31)
            at android.app.Activity.performCreate(Activity.java:6144)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
            at io.bxbxbai.androiddemos.MainActivity.onCreate(MainActivity.java:31)
            at android.app.Activity.performCreate(Activity.java:6144)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NoSuchMethodError: android.support.v4.content.ContextCompat.getDrawable
            at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:133)
            at android.support.v7.internal.widget.TintTypedArray.getDrawable(TintTypedArray.java:62)
            at android.support.v7.widget.Toolbar.<init>(Toolbar.java:248)
            at android.support.v7.widget.Toolbar.<init>(Toolbar.java:190)
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
            at io.bxbxbai.androiddemos.MainActivity.onCreate(MainActivity.java:31)
            at android.app.Activity.performCreate(Activity.java:6144)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2283)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5158)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
            at dalvik.system.NativeStart.main(Native Method)

편집하다

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark"/>

activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity"
        tools:ignore="MergeRootFrame">

        <include android:id="@+id/toolbar" layout="@layout/toolbar" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btn_feed_list_demo"
            android:text="@string/feed_list_demo"/>

    </RelativeLayout>

편집 .. 참조 @GabrieleMariotti
AruLNadhaN

또한이 문제가 있었고 잠시 후 MyActivity가 Activity 대신 ActionBarActivity를 확장하는 것을 잊었습니다. 누군가 도움이 될 수 있습니다
MathieuMaree

@ArulNadhan, 해결책을 찾았습니까? 나는 같은 문제가 있습니다.
William Grand

... 답변을 참조 @WilliamGrand
AruLNadhaN

1
나에게 실수는 내가 <android.support.v7.widget.Toolbar /> 대신 <android.widget.Toolbar />를 사용하고
있었다는 것입니다

답변:


73

새로운 androidx 구현을 사용하는 경우 툴바를 입력하면 Studio에서에 자동 완성 android.support.v7.widget.Toolbar되지만 androidx.appcompat.widget.Toolbar대신 사용해야 합니다. 그렇지 않으면이 오류가 발생합니다.


@Gudin, 이러한 종속성은 실제로 어디에 설명되어 있습니까?
bzal

1
이에 대한 문서는 androidx를 포함하도록 업데이트되지 않았습니다.이 답변에 감사드립니다!
Aman Alam

이것이 여전히 일이라는 것이 놀랍습니다. 게시 해 주셔서 감사합니다. 시간을 많이 절약했습니다.
William T. Mallard

36

죄송합니다. 나는 오래 전에이 문제를 해결했습니다. 저는 많은 변화를했습니다. 그래서 나는 어떤 것이 트릭을하는지 알 수 없습니다.

  1. Jared Burrows가 제안한대로 ID를 변경했습니다.

  2. 내 지원 라이브러리를 제거하고 내 프로젝트를 정리하고 다시 추가했습니다.

  3. 파일-> 캐시 무효화 / 다시 시작으로 이동합니다.

작동하기를 바랍니다.

이것이 내 코드의 모습입니다.

activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        android:id="@+id/toolbar_actionbar"
        layout="@layout/toolbar_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar_actionbar">

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <fragment
            android:id="@+id/fragment_drawer"
            android:name="com.arul.anahy.drawer.NavigationDrawerFragment"
            android:layout_width="@dimen/navigation_drawer_width"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:layout="@layout/fragment_navigation_drawer"/>
    </android.support.v4.widget.DrawerLayout>
</RelativeLayout>

toolbar_default.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    style="@style/ToolBarStyle"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="@dimen/abc_action_bar_default_height_material"/>

ToolBarStyle

<style name="ToolBarStyle" parent="">
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
        <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
 </style>

제 경우에는 위의 ans에서 제안한대로 3 단계를 수행했습니다.
Gem

@dimen/abc_action_bar_default_height_material비공개로 표시됩니다. 무시할 수있는 경고 일 뿐입니 까?
hgoebl

parent = "AppTheme.NoActionBar"를 parent = ""로 바꾸면 문제가 해결되었습니다.
Gurvinder Singh 2017 년

29

이것은 androidx 구현으로 새로운 안드로이드에서 이전 코드를 사용하려고 할 때 나에게 일어났습니다. XML 정의를 다음으로 변경하십시오.

<androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
            app:titleTextColor="@android:color/white" />

그런 다음 Java 코드에서;

import androidx.appcompat.widget.Toolbar;

1
덕분에,이 내가 :) 찾고 있던 대답이었다 동생 아
무 케시 차우

24

다음을 대체하여이 문제를 해결할 수있었습니다.

툴바 레이아웃에서 다음과 같은 모든 항목을 교체합니다.

android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"

android:minHeight="@dimen/abc_action_bar_default_height_material"
android:background="@color/myColor"

답변 해주셔서 감사합니다.
Meher

android : background = "? attr / colorPrimary"툴바가 관련된 어떤 머티리얼 요소를 좋아하지 않기 때문에 제거해야합니다
TSG anti SO dark forces

API 19 이하의 경우
TSG anti SO dark

고마워요, 당신은 제 하루를 구했습니다
akhil

6

이 블로그에서이 문제를 해결했습니다. http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

문제는 잘못된 테마를 사용한다는 것입니다. 내 프로젝트에서 Theme.AppCompat.NoActionBar와 같은 테마를 선택할 수 있습니다.

나는 당신을 돕고 싶습니다.


이것은 Xamarin에서 작업하는 나를 위해 그것을 해결했으며 활동에 대한 테마를 설정하지 않았습니다.
Post Impatica

6

23.2.0 버전의 AppCompat Library를 사용하는 것과 동일한 문제가 발생했습니다. 지원 라이브러리를 23.2.1로 업데이트했고 문제가 해결되었습니다.

이 툴바 문제는 23.2.1에서 해결되었습니다.


이것은 가장 업데이트 된 수정일 수 있습니다. SDK를 업데이트하십시오.
ralphgabb

2
23.3.0에서는 4.4.2 만 사용하는 사용자에 대한 충돌 보고서가 표시됩니다
Gillis Haasnoot

5

이 Google 블로그 게시물을 읽으십시오. http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

<android.support.v7.widget.Toolbar
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

또한 동일한 "ID"를 두 번 제공하는 경우 포함에서 "id"를 제거하십시오.

<include android:id="@+id/toolbar" layout="@layout/toolbar" />

1
네임 스페이스를 제거하는 이유는 무엇입니까? 또한 ID에 대한 두 개의 참조와 관련하여 하나의 ID는 레이아웃의 도구 모음 인스턴스를 참조하고 다른 하나는 리소스 ID입니다. 그래서 나는 당신이 둘 다 필요하다고 생각합니다.
William Grand

@WilliamGrand 그가 언제 자신의 게시물을 "편집"했는지 잘 모르겠습니다. 이제 그의 도구 모음이 별도의 파일에 있음을 알 수 있으며 네임 스페이스는 그대로 두어도 괜찮습니다. 동일한 "id"가 두 개 있으며 그는 include를 사용하여 해당 레이아웃을 다른 레이아웃으로 가져옵니다. 그는 포함에 "ID"가 필요하지 않습니다.
Jared Burrows 2014

1
인클루드의 ID는 일단 확장되면 레이아웃의 해당 요소에 사용 된 ID를 재정의합니다. 그것은 포함의 기능입니다. 그가 자신의 코드에서 올바른 ID를 사용하는 한 아무것도 해치지 않아야합니다.
Lorne Laliberte

3

나는 똑같은 문제에 직면했지만 appcompatv23.2.0. 위의 모든 제안을 시도했지만 작업을 수행했습니다. 그런 다음 내 Gradle 파일로 이동하여 다음을 대체했습니다.

dependencies {
compile 'com.android.support:appcompat-v7:23.2.0’
compile 'com.android.support:design:23.2.0'

}

와:

dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
}

프로젝트를 다시 빌드하면 문제가 사라졌습니다. 앱 컴팩트 v23.2.0의 문제 일 수 있으며, 새로운 업데이트로 작업 할 수 있도록 더 나은 솔루션이 나올 수 있기를 바랍니다.

도움이 되었기를 바랍니다. 감사합니다.


compile 'com.android.support:design:23.0.1'이 코드는 내 문제 해결
모하메드 타우 픽

3

앱 build.gradle 파일을 수정하여이 문제를 해결했습니다.

Gradle 플러그인 2.0 이상

 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }  

Gradle 플러그인 1.5의 경우

 android {  
   defaultConfig {  

     generatedDensities = []  
  }  

  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 } 

3

나는 이것이 오래된 질문이라는 것을 알고 있지만 최근에 동일한 문제에 직면했습니다. 내가 설정 한 경우 (A Proguard와 문제 었죠 minifyEnabledfalse 이 일이 중단되었습니다.)

이를 중지하기 위해 proguard를 활성화 한 상태에서 다른 곳에서 찾은 솔루션 덕분에 proguard 규칙 파일에 다음을 추가했습니다 (문제가 proguard라는 것을 발견 한 후).

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

필요한지 확실하지 않지만 다음 줄도 추가했습니다.

-keep class com.google.** { *; }
-keep interface com.google.** { *; }

2
릴리스 빌드에서만이 오류가 발생하므로 도움이되었습니다.
Rahul Chandrabhan

1

나는 같은 문제에 직면했다. 나를 위해 일한 솔루션. v7.Toolbar를 사용하는 경우 Theme.AppCompat. *에서 확장 된 테마를 사용해야합니다. android : Theme.Material. *에서 확장 된 테마는 스타일 속성이 다르기 때문에 사용할 수 없습니다.

도움이 되길 바랍니다.


1

이 줄을 아래와 같이 제거했습니다.

이전 :

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar1"
    android:layout_width="match_parent"
    android:layout_height="@attr/actionBarSize"
    android:minHeight="@attr/actionBarSize"
    android:layout_alignParentTop="true" >

이후 :

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentTop="true" >

"@ attr / actionBarSize"대신 저에게 적합한 특정 치수를 입력하십시오.


1

이 문제를 해결하려면. 먼저 \ sdk \ extras \ android \ support에서 latestandroid-support-v7-appcompat를 추가해야합니다.

  1. 메인 프로젝트를 닫습니다.
  2. android-support-v7-appcompat를 제거합니다.
  3. Eclipse를 다시 시작하십시오.
  4. android-support-v7-appcompat를 추가합니다.
  5. 청소, 프로젝트를 빌드합니다.
  6. 그런 다음 기본 프로젝트를 열고 모든 프로젝트를 빌드하십시오.
  7. 오류는 여전히 남아 있습니다. 이클립스를 다시 시작하십시오. 그게 다야.

그것은 저에게 효과적이며 Android Studio를 사용하는 것이 좋습니다.


1

이것은 나를 위해 일했습니다. 컴파일 'com.android.support:appcompat-v7:21.0.3'을 gradle에 추가하십시오. sdk 대상을 21로 변경하십시오. 작동하기를 바랍니다!


1

나를 위해 그것은 내가 한 후에 작동했습니다.

  • 세정액.
  • 내가 디버깅 한 전화에서 앱을 삭제합니다.
  • Visual Studio를 닫습니다.
  • Android 프로젝트에서 / bin / 및 / obj / 폴더를 삭제합니다.
  • 솔루션을 다시 시작합니다.

1

위의 솔루션 중 어느 것도 나를 위해 일하지 않았습니다.

내 프로젝트에 도구 모음이 없었지만 같은 오류가 발생했습니다.

프로젝트를 정리하고 앱을 제거했습니다. 그런 다음 gradlew build --refresh-dependencies를 실행하고 xml 파일에 해당 코드가없는 일부 onclick 이벤트가 있음을 발견했습니다.

나는 그것들을 제거하고 프로젝트를 재 구축했고 작동했습니다.

종속성이 업데이트 된 것 같지 않았지만 이는 또 다른 이야기입니다.


1

VS의 Xamarin의 경우 다음을 추가해야합니다.

Theme = "@style/MyThemesss"

youractivity.cs에.

나는 이것을 추가하고 계속합니다.


1

제 경우에는 Imageview의 인플레이션 예외, 하위 버전 및 롤리팝 OS 에서이 오류가 발생했습니다.

드로어 블 v-24 폴더의 모든 이미지 파일을 드로어 블 폴더로 이동할 때이 예외를 해결했습니다.


0

RelativeLayout의 도구 모음을 포함하여 문제가 있었고 LinearLayout을 사용해보십시오. 툴바를 오버레이하려면 다음을 시도하십시오.

 <RelativeLayout>

    <LinearLayout>
      --INCLUDE tOOLBAR--
    </LinearLayout>

    <Button></Button>

 </RelativeLayout>

나는 이유를 이해하지 못하지만 그것은 나를 위해 작동합니다.


0

이 오류가 저에게 발생한 이유는 분명하지 않지만 해결했습니다. 동일한 레이아웃, 인라인 또는 포함을 사용했는데 둘 다 NPE 오류가 발생합니다. 그래서 레이아웃 문제가 아니라고 생각합니다.

추상 클래스 호출 BaseActivity가 initActionBar () 메서드가있는 ActionBarActivity를 확장했습니다. 이 메서드는 자식 클래스의 OnCreate에서 재정의하고 호출합니다. 그런 것 :

android.support.v7.app.ActionBar mActionBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_book_appointment);

    // Inject View using ButterKnife
    ButterKnife.inject(this);

    // Init toolbar & status bar
    initActionBar();
}

@Override
protected void initActionBar() {
    super.initActionBar();

    setSupportActionBar(mToolBar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mActionBar = getSupportActionBar();
    mActionBar.setDisplayHomeAsUpEnabled(true);
    mActionBar.setHomeButtonEnabled(true);
}

위 코드에 NPE 오류가 있습니다. 왜 내가 틀렸는 지 모르겠어요. 아래 코드로 해결했는데 똑같아 보입니다.

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_book_appointment);
    ButterKnife.inject(this);

    setSupportActionBar(mToolBar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mActionBar = getSupportActionBar();
    mActionBar.setDisplayHomeAsUpEnabled(true);
    mActionBar.setHomeButtonEnabled(true);

    initActionBar();
}

@Override
protected void initActionBar() {
    super.initActionBar();
}

0

제 경우에는 inflater.inflate (R.layout.some_layout, null) 호출에 문제가있었습니다. ViewGroup 매개 변수로 Null이 문제였습니다.


0

나에게 문제에 대한 해결책은 내 주요 활동에 대한 XML 문서에서 발견되었습니다. 원래 내 도구 모음은 <android.support.v7.widget.Toolbar. 이 문제를 해결하기 위해 <android.widget.Toolbar. 왜 이것이 효과가 있었는지 모르겠습니다. 이유에 대한 통찰력이있는 사람이 있습니까?


<android.support.v7.widget.Toolbar는 사전 롤리팝 기기를 지원하는 것입니다. 이 android-developers.blogspot.in/2014/10/…을
Sagar Devanga 2015 년

0

사전 lolipop 장치에 문제가있었습니다. 다음을 대체하여이 문제를 해결할 수있었습니다.

툴바 레이아웃에서 다음과 같은 모든 항목을 교체합니다.

android:layout_height="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"

android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"

0

저에게 오류는 다음과 같습니다.

    <android:support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"/>

대신에:

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"/>

특히 첫 번째 줄에는 마침표 대신 "android"와 "support"사이에 콜론이있었습니다.


이것이 누구에게 도움이 될 수 있는지 모르겠습니다.
ichalos

@ichalos 그것은에 대한 무료 대안이 될 수 zone.msn.com/en/spotthedifference
OBE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.