2014-11-15 53 views
2

今天我升級到API 21,這是本月最大的錯誤。ActionBar API 21中沒有顯示圖標

所以我花了整整一天的時間試圖獲得一個動作欄圖標。

我正在使用eclipse與sdk和everthing更新。

的問題如下:

API 21之前,我添加了一個圖標,

android.app.ActionBar bar = getActionBar(); 
bar.setIcon(getResources().getDrawable(R.drawable.ic_launcher)); 

這工作得很好,所有的時間... 但現在,不幸的是,這段臺詞引起空指針異常...

(附1)

這樣我就可以拿到動作條只有:

final ActionBar actionBar = getSupportActionBar(); 

那就是突破點..這個actionBar沒有設置圖標,setIcon方法根本不起作用。

所以,要找到解決方案,我已經完全重新安裝了Eclipse和SDK並開始了一個新的android項目。在這個新項目中也沒有ActionBar圖標,上面的代碼也不起作用。

這引出了我的假設,這是一些新的API 21錯誤。

下面我發佈了一些額外的信息:

進口:

import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.ActionBarActivity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.Window; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.ImageButton; 
import android.widget.ImageView; 
import android.widget.ProgressBar; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.CompoundButton.OnCheckedChangeListener; 

樣式:

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- 
    Base application theme, dependent on API level. This theme is replaced 
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 
--> 
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"> 
    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. 
    --> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go  here. --> 
</style> 
<style name="Theme_Translucent" parent="Theme.AppCompat.Light"> 
<item name="android:windowBackground">@android:color/transparent</item> 
<item name="android:windowFrame">@null</item> 
<item name="android:windowContentOverlay">@null</item> 
<item name="android:windowIsFloating">true</item> 
<item name="android:backgroundDimEnabled">true</item> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowNoTitle">true</item> 
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
<item name="android:background">#3798db</item> 

</style> 




</resources> 

logcat的與第一守則(附1),對不起,壞佈局:

 erere`11-15 22:33:35.910: E/AndroidRuntime(2663): FATAL EXCEPTION: main 
     11-15 22:33:35.910: E/AndroidRuntime(2663): Process: com.lunation.kuhdwallpaper, PID: 2663 
    11-15 22:33:35.910: E/AndroidRuntime(2663): java.lang.RuntimeException: Unable to  start activity  ComponentInfo{com.lunation.kuhdwallpaper/com.lunation.kuhdwallpaper.MainActivity}: java.lang.NullPointerException 
     11-15 22:33:35.910: E/AndroidRuntime(2663): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212) 
    11-15 22:33:35.910: E/AndroidRuntime(2663): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
    11-15 22:33:35.910: E/AndroidRuntime(2663): at android.app.ActivityThread.access$800(ActivityThread.java:144) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.os.Handler.dispatchMessage(Handler.java:102) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.os.Looper.loop(Looper.java:136) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.app.ActivityThread.main(ActivityThread.java:5146) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at java.lang.reflect.Method.invokeNative(Native Method) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at java.lang.reflect.Method.invoke(Method.java:515) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 
    11-15 22:33:35.910: E/AndroidRuntime(2663): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 
    11-15 22:33:35.910: E/AndroidRuntime(2663): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at dalvik.system.NativeStart.main(Native Method) 
    11-15 22:33:35.910: E/AndroidRuntime(2663): Caused by: java.lang.NullPointerException 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at com.lunation.kuhdwallpaper.MainActivity.onCreate(MainActivity.java:198) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.app.Activity.performCreate(Activity.java:5231) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    11-15 22:33:35.910: E/AndroidRuntime(2663):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169) 
    11-15 22:33:35.910: E/AndroidRuntime(2663): ... 12 more 
` 

    11-15 22:33:35.790: I/dalvikvm(2663): Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted 

    11-15 22:33:35.790: I/dalvikvm(2663): Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll 

該項目使用appcompat v7,v4。

有沒有人得到一個建議?

問候?

+0

默認情況下,操作欄不再有'Theme.Material'或'Theme.AppCompat'圖標(在後一種情況下,如果使用的是版本21. +)。 – CommonsWare

+0

那麼,你如何獲得一個操作欄圖標? –

+3

http://stackoverflow.com/questions/26642378/appcompat-21-logo-as-back-button – CommonsWare

回答

0

在每個項目的末尾 添加如下項目 <!-- Support library compatibility--> <item name="background">#3798db</item> 而且您可以自定義您的操作欄。它適用於我。