必需:android.support.v7.app.ActionBar 找到:无效



我正在尝试这样做:

ActionBar toolbar = getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);

但它说:必需:android.support.v7.app.ActionBar 找到:无效。不知道该怎么办,希望有人能帮忙。谢谢

它还这样说: ActionBar.setDefaultDisplayHomeAsUpEnabled只能从同一个库组(groupId=com.android.support(内调用,更少...(Ctrl+F1(此 API 已标记为未满足的限制。 API 限制示例: * 方法只能由子类调用 * 方法只能从同一库中访问(由 Gradle 库组 ID 定义(.* 方法只能从测试中访问。.您可以使用@RestrictTo注释添加自己的 API 限制。

之后我使用了这个:

ActionBar toolbar = getSupportActionBar();
toolbar.setDisplayHomeAsUpEnabled(true);

我现在得到了这个解释:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.hfad.appmovienav, PID: 13025
                  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.hfad.appmovienav/com.hfad.appmovienav.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2718)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                      at android.app.ActivityThread.-wrap11(Unknown Source:0)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                      at android.os.Handler.dispatchMessage(Handler.java:105)
                      at android.os.Looper.loop(Looper.java:164)
                      at android.app.ActivityThread.main(ActivityThread.java:6541)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                   Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
                      at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:117)
                      at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149)
                      at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:56)
                      at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:31)
                      at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:31)
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:198)
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183)
                      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
                      at android.support.v7.app.AppCompatActivity.getSupportActionBar(AppCompatActivity.java:109)
                      at com.hfad.appmovienav.MainActivity.<init>(MainActivity.java:24)
                      at java.lang.Class.newInstance(Native Method)
                      at android.app.Instrumentation.newActivity(Instrumentation.java:1173)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                      at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                      at android.os.Handler.dispatchMessage(Handler.java:105) 
                      at android.os.Looper.loop(Looper.java:164) 
                      at android.app.ActivityThread.main(ActivityThread.java:6541) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
Application terminated.
ActionBar toolbar = getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);

在上面的行中,您从setDefaultDisplayHomeAsUpEnabled(true(中获取返回void值。所以为此你需要做:

ActionBar toolbar = getSupportActionBar();
toolbar.setDisplayHomeAsUpEnabled(true);

不要忘记将您的活动扩展到AppCompatActivity喜欢:

public class BaseActivity extends AppCompatActivity {

并添加样式:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

并在清单中使用此样式:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

最新更新