今天我升级到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。
有没有人得到一个建议?
问候?
默认情况下,操作栏不再有'Theme.Material'或'Theme.AppCompat'图标(在后一种情况下,如果使用的是版本21. +)。 – CommonsWare
那么,你如何获得一个操作栏图标? –
http://stackoverflow.com/questions/26642378/appcompat-21-logo-as-back-button – CommonsWare