Nexus 5的材料设计与Android L移动 [英] Material Design on Nexus 5 with Android L
问题描述
在Android L我的应用程序崩溃,但它的工作原理Android KitKat上。也有是在布局上没有RippleDrawable。下面是异常和布局;
XML布局:
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:背景=@色/ page_background> <的EditText
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginLeft =30dp
机器人:layout_marginRight =30dp
安卓的inputType =textEmailAddress
机器人:EMS =10
机器人:ID =@ + ID / usernameET
机器人:layout_alignParentTop =真
机器人:layout_centerHorizontal =真
机器人:layout_marginTop =100dp
机器人:提示=@字符串/ username_hint/> <的EditText
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginLeft =30dp
机器人:layout_marginRight =30dp
安卓的inputType =textPassword
机器人:EMS =10
机器人:ID =@ + ID / passwordET
机器人:layout_below =@ + ID / usernameET
机器人:layout_centerHorizontal =真
机器人:layout_marginTop =20dp
机器人:提示=@字符串/ password_hint/> <按钮
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginLeft =60dp
机器人:layout_marginRight =60dp
机器人:文字=@字符串/ login_text
机器人:ID =@ + ID / loginBtn
机器人:背景=@绘制/ positive_button_selector
机器人:文字颜色=#FFF
机器人:layout_below =@ + ID / passwordET
机器人:layout_centerHorizontal =真
机器人:layout_marginTop =40dp/> <的TextView
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=@字符串/ register_text
机器人:ID =@ + ID / registerText
机器人:layout_below =@ + ID / loginBtn
机器人:layout_marginLeft =50dp
机器人:layout_marginTop =40dp
机器人:文字颜色=@彩色/ accent_color
机器人:TEXTSIZE =16SP/> <的TextView
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=@字符串/ forget_password
机器人:ID =@ + ID / forgetText
机器人:layout_below =@ + ID / registerText
机器人:layout_marginLeft =50dp
机器人:layout_marginTop =20dp
机器人:文字颜色=@彩色/ accent_color
机器人:TEXTSIZE =16SP/>
< / RelativeLayout的>
绘制对象XML'positive_button_selector
<选择的xmlns:机器人=http://schemas.android.com/apk/res/android> <项目的android:STATE_ pressed =false的>
<形状的xmlns:机器人=http://schemas.android.com/apk/res/android机器人:形状=矩形>
[固体机器人:色=@色/ accent_color/>
<角落的android:半径=4DP/>
< /形状>
< /项目>
<项目的android:STATE_ pressed =真正的>
<形状的xmlns:机器人=http://schemas.android.com/apk/res/android机器人:形状=矩形>
[固体机器人:色=@色/ teal_light/>
<角落的android:半径=4DP/>
< /形状>
< /项目>
< /选择>
例外:
>显示java.lang.NullPointerException:试图调用虚拟方法INT android.content.res.ColorStateList.getColorForState(INT [],INT)对空对象引用
在android.graphics.drawable.RippleDrawable.activateHotspot(RippleDrawable.java:413)
在android.graphics.drawable.RippleDrawable.setActive(RippleDrawable.java:229)
在android.graphics.drawable.RippleDrawable.onStateChange(RippleDrawable.java:207)
在android.graphics.drawable.Drawable.setState(Drawable.java:566)
在android.view.View.drawableStateChanged(View.java:15576)
在android.widget.TextView.drawableStateChanged(TextView.java:3477)
在android.view.View.refreshDrawableState(View.java:15594)
在android.view.View.handleFocusGainInternal(View.java:4779)
在android.view.View.requestFocusNoSearch(View.java:7335)
在android.view.View.requestFocus(View.java:7314)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
在android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
在android.view.ViewGroup.requestFocus(ViewGroup.java:2451)
在android.view.View.requestFocus(View.java:7281)
在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1898)
在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1044)
在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:5749)
在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:767)
在android.view.Choreographer.doCallbacks(Choreographer.java:580)
在android.view.Choreographer.doFrame(Choreographer.java:550)
在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:753)
在android.os.Handler.handleCallback(Handler.java:738)
在android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:135)
在android.app.ActivityThread.main(ActivityThread.java:5070)
在java.lang.reflect.Method.invoke(本机方法)
在java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:836)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
此问题是由棒棒堂的老preVIEW版本引起的。如果更新设备,以最新的preVIEW版本,你不会看到这个崩溃了。
的意见提的是发生在版本LPV81C这是在2014年7月发布的最新preVIEW版本,2014年10月27日的大跌是LPX13D它没有这个问题。
My app crashes on Android L but it works on android kitkat. Also There is no RippleDrawable on the layout. Here is Exception and layout ;
Xml Layout :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/page_background">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:inputType="textEmailAddress"
android:ems="10"
android:id="@+id/usernameET"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:hint="@string/username_hint" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/passwordET"
android:layout_below="@+id/usernameET"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:hint="@string/password_hint" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:text="@string/login_text"
android:id="@+id/loginBtn"
android:background="@drawable/positive_button_selector"
android:textColor="#fff"
android:layout_below="@+id/passwordET"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/register_text"
android:id="@+id/registerText"
android:layout_below="@+id/loginBtn"
android:layout_marginLeft="50dp"
android:layout_marginTop="40dp"
android:textColor="@color/accent_color"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/forget_password"
android:id="@+id/forgetText"
android:layout_below="@+id/registerText"
android:layout_marginLeft="50dp"
android:layout_marginTop="20dp"
android:textColor="@color/accent_color"
android:textSize="16sp" />
</RelativeLayout>
Drawable xml 'positive_button_selector' :
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/accent_color" />
<corners android:radius="4dp" />
</shape>
</item>
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/teal_light" />
<corners android:radius="4dp" />
</shape>
</item>
</selector>
Exception :
> java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.res.ColorStateList.getColorForState(int[], int)' on a null object reference
at android.graphics.drawable.RippleDrawable.activateHotspot(RippleDrawable.java:413)
at android.graphics.drawable.RippleDrawable.setActive(RippleDrawable.java:229)
at android.graphics.drawable.RippleDrawable.onStateChange(RippleDrawable.java:207)
at android.graphics.drawable.Drawable.setState(Drawable.java:566)
at android.view.View.drawableStateChanged(View.java:15576)
at android.widget.TextView.drawableStateChanged(TextView.java:3477)
at android.view.View.refreshDrawableState(View.java:15594)
at android.view.View.handleFocusGainInternal(View.java:4779)
at android.view.View.requestFocusNoSearch(View.java:7335)
at android.view.View.requestFocus(View.java:7314)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2448)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2492)
at android.view.ViewGroup.requestFocus(ViewGroup.java:2451)
at android.view.View.requestFocus(View.java:7281)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1898)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1044)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5749)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:738)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5070)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
This issue is caused by an old preview version of Lollipop. If you update your device to the latest preview version you will not see this crash anymore.
The comments mention that the crash occurred in version LPV81C which was released in July 2014. The latest preview version as of Oct 27 2014 is LPX13D which does not have this issue.
这篇关于Nexus 5的材料设计与Android L移动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!