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.
Bitte teilen Sie Ihr Manifest und auch Klasse. –
verwenden Sie 'Toolbar'? Wenn ja, müssen Sie die Symbolleiste in oncreate() setSupportActionBar (myToolbar); https://developer.android.com/training/appbar/setting-up.html –
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) –