2017-11-07 3 views
0

Ich erhalte eine NullPointerException wie unten aufzurufen:Android Nullpointer Versuch virtuelle Methode ‚android.support.v7.app.ActionBar MainActivity.getSupportActionBar()

NullPointerException: Attempt to invoke virtual method 'android.support.v7.app.ActionBar MainActivity.getSupportActionBar() 

ich die Lösungen versucht, in anderen Beiträgen erwähnt haben, aber das scheint nicht zu helfen. Ich fühle, dass das Problem um die appcompat Version ist. Aber merkwürdige Sache ist, dass ich das Problem gesehen habe, das nur erscheint, nachdem ich Firebase Bibliotheksversion 9.8.0 eingeführt habe. Nicht sicher, wie das zusammenhängt.

-Code snipper wo Fehler ausgelöst:

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion '25.0.0' 

defaultConfig { 
    applicationId "com.pack.App1" 
    minSdkVersion 16 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
} 

buildTypes { 
release { 
    minifyEnabled false 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
} 
} 
lintOptions { 
abortOnError false 
} 
} 

repositories { 
    maven { url "https://jitpack.io" } 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.squareup.picasso:picasso:2.5.0' 
compile 'com.google.firebase:firebase-database:9.8.0' 
compile 'com.google.firebase:firebase-storage:9.8.0' 
compile 'com.google.firebase:firebase-auth:9.8.0' 
compile 'com.android.support:cardview-v7:23.0.+' 
compile 'com.android.support:recyclerview-v7:23.0.+' 
compile ('com.android.support:appcompat-v7:23.1.0') { force=true; } 
compile 'com.android.support:design:23.0.1' 
compile 'com.github.PhilJay:MPAndroidChart:v2.2.4' 
compile 'com.google.android.gms:play-services-auth:9.8.0' 
} 

apply plugin: 'com.google.gms.google-services' 

Styles.xml Inhalt:

@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     if (isVisibleToUser) { 
     ((MainActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
     ((MainActivity) getActivity()).setToolBarTitle(FragTitle); 
    } 
    } 

App Gradle Dateiinhalt wird unten

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    </style> 

    <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/background_splash</item> 
    </style> 

    <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowContentOverlay">@null</item> 

    </style> 

    <style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> 

    </style> 

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    </style> 

</resources> 

Beachten Sie, dass das Problem nicht im Zusammenhang mit Instanziierung. Das Problem wird nur beobachtet, wenn ich unter Firebase-Bibliothek in der Gradle-Datei unter drei Zeilen habe, sonst funktioniert alles einwandfrei.

Ich sehe dieses Problem nicht, wenn ich ältere Version von Firebase-Bibliotheken unten verwende.

compile 'com.google.firebase:firebase-database:9.2.1' 
compile 'com.google.firebase:firebase-storage:9.2.1' 
compile 'com.google.firebase:firebase-auth:9.2.1' 

Dieses Problem scheint seltsam und nicht sicher, wie Sie das beheben. Ich brauche eine höhere Version von Firebase, da sendEmailVerification nur in dieser höheren Version unterstützt wird.

+0

Bitte teilen Sie Ihr Manifest und auch Klasse. –

+0

verwenden Sie 'Toolbar'? Wenn ja, müssen Sie die Symbolleiste in oncreate() setSupportActionBar (myToolbar); https://developer.android.com/training/appbar/setting-up.html –

+1

Mögliche Duplikate von [Was ist eine NullPointerException, und wie kann ich es beheben?] (https://stackoverflow.com/questions/218384/ what-is-a-nullpointerexception-and-how-do-i-fix-it) –

Antwort

0

setUserVisibleHint() nach onCreate() ausgeführt wird, aber man muss instanziiert Ansichten in onCreate() Verfahren von Activity, andere weise wird es NPE werfen.

+0

Problem bezieht sich nicht auf Instanziierung. Dieses Problem tritt nur auf, wenn ich die Firebase-Bibliothek der Gradle-Datei hinzufüge. – dacscan3669

+0

aber wie kann es sein? Actionbar NPE mit Firebase!? seltsam – himel

+0

auch ich benutze firebase 11.4.2, keine Probleme dieser Art konfrontiert, können Sie versuchen, Firebase-Version zu aktualisieren ..aber das ist seltsam variieren! – himel

Verwandte Themen