2014-11-18 2 views
11

Android 5.0에서 내 앱의 스위치를 클릭하면 아래 표시된 logcat과 충돌합니다. logcat은 어디에서나 내 코드를 참조하지 않으며이 스위치는 모든 이전 버전에서 잘 작동합니다. 스위치는 배경색을 제외하고는 보이지 않는 것처럼 보이며 클릭하면 충돌 만 발생합니다.Android 5.0을 클릭하면 스위치가 다운 됨

테스트 후 setOnCheckedChangeListener 함수를 정의하는지 여부와 관계없이 동일한 문제가 발생합니다. 스위치가 레이아웃에 있지만 코드에는 없더라도 클릭 할 때 여전히 충돌합니다.

문제의 스위치 중 하나 여기

<Switch 
    android:layout_width="90dp" 
    android:layout_height="wrap_content" 
    android:textOff="Airborn" 
    android:textOn="Direct Contact" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/switchWind"/> 

을 그리고 내가 그것을 참조하는 방법입니다.

// Doesn't actually matter since same thing happens without this 
Switch sWind = (Switch) findViewById(R.id.switchWind); 
sWind.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    public void onCheckedChanged(CompoundButton v, boolean isChecked) { 
     // Won't reach here 
    } 
}); 

로그 캣 :

11-17 22:09:18.722 30190-30190/com.egondev.android.patientzerotest E/InputEventReceiver﹕ Exception dispatching input event. 
11-17 22:09:18.722 30190-30190/com.egondev.android.patientzerotest E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback 
11-17 22:09:18.735 30190-30190/com.egondev.android.patientzerotest E/MessageQueue-JNI﹕ java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.drawable.Drawable.getPadding(android.graphics.Rect)' on a null object reference 
     at android.widget.Switch.hitThumb(Switch.java:694) 
     at android.widget.Switch.onTouchEvent(Switch.java:711) 
     at android.view.View.dispatchTouchEvent(View.java:8388) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2314) 
     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1692) 
     at android.app.Activity.dispatchTouchEvent(Activity.java:2739) 
     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2275) 
     at android.view.View.dispatchPointerEvent(View.java:8578) 
     at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4021) 
     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3887) 
     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3449) 
     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502) 
     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3468) 
     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3578) 
     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3476) 
     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3635) 
     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3449) 
     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502) 
     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3468) 
     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3476) 
     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3449) 
     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5701) 
     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5675) 
     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5646) 
     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5791) 
     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 
     at android.os.MessageQueue.nativePollOnce(Native Method) 
     at android.os.MessageQueue.next(MessageQueue.java:143) 
     at android.os.Looper.loop(Looper.java:122) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     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:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
11-17 22:09:18.735 30190-30190/com.egondev.android.patientzerotest D/AndroidRuntime﹕ Shutting down VM 
11-17 22:09:18.736 30190-30190/com.egondev.android.patientzerotest E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.egondev.android.patientzerotest, PID: 30190 
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.drawable.Drawable.getPadding(android.graphics.Rect)' on a null object reference 
     at android.widget.Switch.hitThumb(Switch.java:694) 
     at android.widget.Switch.onTouchEvent(Switch.java:711) 
     at android.view.View.dispatchTouchEvent(View.java:8388) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2430) 
     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2119) 
     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2314) 
     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1692) 
     at android.app.Activity.dispatchTouchEvent(Activity.java:2739) 
     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2275) 
     at android.view.View.dispatchPointerEvent(View.java:8578) 
     at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4021) 
     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3887) 
     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3449) 
     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502) 
     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3468) 
     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3578) 
     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3476) 
     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3635) 
     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3449) 
     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502) 
     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3468) 
     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3476) 
     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3449) 
     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5701) 
     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5675) 
     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5646) 
     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5791) 
     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 
     at android.os.MessageQueue.nativePollOnce(Native Method) 
     at android.os.MessageQueue.next(MessageQueue.java:143) 
     at android.os.Looper.loop(Looper.java:122) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     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:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
+0

xml에서 전환보기 만 정의하고 활동에서 코드 관련 전환을 수행하지 않으면 동일한 오류가 발생합니다. –

+1

둘러보기 Android 5.0의 버그 https://code.google.com/p/android-developer-preview/issues/detail?id=1704 – Ishtiaq

+0

좋은 캐치 @Aafaq –

답변

9

그것은 안드로이드 알려진 문제처럼 보인다 5.

는 아래의 링크를 참조하시기 바랍니다 :

https://code.google.com/p/android-developer-preview/issues/detail?id=1704

+2

크레이지가 QA를 지나쳤습니다. 스위치가 널리 사용되는 것은 아닙니다. –

+0

그런 다음이 문제를 해결하는 방법. 이 문제가 해결 되었습니까? 제발 말해줘! 감사합니다 – sandeepmaaram

1

그냥 엄지와 트랙 변경을 스위치의 이미지.

+1

우리는 그것을 어떻게 바꿀까요? – Ahmed

0

매니페스트 파일의 테마를 변경하면 효과적입니다. 테마 = 내가 안드로이드했다 "@ 안드로이드 : 스타일/Theme.NoTitleBar"


안드로이드로 변경 : 테마 = "@ 안드로이드 : 스타일/Theme.DeviceDefault"

나는 같은에 직면
+0

5.0.2에서 같은 문제가 발생합니다. NoTitleBar 테마 스위처가 깨졌습니다 = ( –

0

안드로이드 5.0.2와 소니 타블렛에서 문제 - 스위치 행동 스타일이 NoTitleBar/FullScreen 때 스위치 충돌.

나에게 잘 맞았던 점은 전체 화면 모드를 코드로 설정하고 매니페스트 내부에는 설정하지 않는 것입니다.

View decorView = getWindow().getDecorView(); 
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 

내가 뭔가를 망쳐 놓지 않으면, 결과는 usuall과 동일하지만 충돌하지 않습니다.