2014-12-14 4 views
2

셀렉트 기능이있는 버튼을 눌렀습니다. 잘 실행되고있는 것을 사용하면 안드로이드 스튜디오 을 사용하고 있습니다. 하지만, 안드로이드 스튜디오에서 사용해 보면, 로그는 오류를 표시 계속 ..안드로이드 스튜디오 에러 렌더링의 셀렉터가있는 이미지 버튼

이 내 로그입니다 :

java.lang.NullPointerException 
at android.graphics.Bitmap_Delegate.createBitmap(Bitmap_Delegate.java:614) 
at android.graphics.Bitmap_Delegate.createBitmap(Bitmap_Delegate.java:122) 
at android.graphics.Bitmap_Delegate.createBitmap(Bitmap_Delegate.java:104) 
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:249) 
at android.content.res.BridgeTypedArray.getDrawable(BridgeTypedArray.java:674) 
at android.view.View.<init>(View.java:3730) 
at android.widget.ImageView.<init>(ImageView.java:139) 
at android.widget.ImageButton.<init>(ImageButton.java:86) 
at android.widget.ImageButton.<init>(ImageButton.java:82) 
at android.widget.ImageButton.<init>(ImageButton.java:78) 
at sun.reflect.GeneratedConstructorAccessor75.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl. 
    newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:408) 
at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:82) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:128) 
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) 
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:400) 
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:332) 
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 
at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:688) 
at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:677) 
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) 
at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:677) 
at com.android.tools.idea.rendering.RenderService.render(RenderService.java:815) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager. 
    doRender(AndroidLayoutPreviewToolWindowManager.java:646) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager. 
    access$1700(AndroidLayoutPreviewToolWindowManager.java:82) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1. 
    run(AndroidLayoutPreviewToolWindowManager.java:589) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) 
at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress 
    (ProgressManager.java:209) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress 
    (ProgressManagerImpl.java:212) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess 
    (ProgressManagerImpl.java:171) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run 
    (AndroidLayoutPreviewToolWindowManager.java:584) 
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) 
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 
at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

이 내 선택입니다 :에서

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

<item android:state_pressed="true" android:drawable="@drawable/press_pdgmap" /> <!-- pressed --> 
<item android:state_focused="true" android:drawable="@drawable/hover_pdgmap2" /> <!-- hover --> 

<item android:drawable="@drawable/hover_pdgmap" /> <!-- default --> 

</selector> 

내 내가 사용하는 활동 :

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageButton" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/selector" 
    android:clickable="true" /> 

내 활동에 빨간색 마커가 "android : background ="@ drawable/selector "행에 계속 표시됩니다.

이동식 이미지와 선택기 파일을 드로어 블 가능합니까? 내가 잘못 했습니까?

참고 : 설명을 잘못하면 죄송합니다.

+0

@bluefeet, 귀하의 요점을 알려드립니다. 대신 다른 답변을 연결했습니다. – Prince

답변

1

나는이

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_pressed="true"> 
    <bitmap android:src="@drawable/press" /> 
</item> 

<item android:state_focused="true"> 
    <bitmap android:src="@drawable/notpress" /> 
</item> 

<item> 
    <bitmap android:src="@drawable/notpress" /> 
</item> 
</selector> 

에 버튼에 대한 사용자의 선택에 대한 코드를 변경하고 당신이 내 안드로이드 스튜디오 pic

NB를 볼 수 있습니다 작업입니다 : 내가 안드로이드 스튜디오 1.0.1를 사용하고 업데이트하고있어 내 SDK를 최신 버전으로 업데이트

1

스택 추적마다 문제는 이미지 버튼에 있습니다. 프로젝트를 청소하고 빌드하고 오류가 발생할 수있는 이미지 버튼을 렌더링하는 데 문제가없는 경우 selector에서 사용중인 이미지가 유효한 형식인지 확인하십시오.

+0

나는 그것을 시도했다. .. 깨끗하고 재건 ..하지만 여전히 오류, 로그 렌더 링 문제, 'android.graphics.Bitmap_Delegate.createBitmap (java.util.NullPointerException java.lang.NullPointerException 렌더링) android.graphics에서 렌더링 문제. Bitmap_Delegate.createBitmap (Bitmap_Delegate.java:122) android.graphics.Bitmap_Delegate.createBitmap (Bitmap_Delegate.java:104) ' –

+0

선택기에서 사용한 이미지를 확인 했습니까? –

+0

예, 이미지 용 PNG를 사용하고 있습니다 ... –

3

Android Studio에서 이와 동일한 문제가 발생합니다. .xml 파일을 호출하지 않으면 안드로이드 스튜디오 새 파일 옵션이 xml 파일에 파일 확장명을 추가하지 않는 문제가있는 것으로 보입니다. \ res \ drawable \ 아래에있는 선택기 xml에 실제로 .xml 확장자가 있는지 확인하십시오.

참고 : 필요한 확장자가없는 경우 자동 완성 (이미지 파일 용)은 작동하지 않지만 전체 파일 이름과 경로를 지정하면 오류가 표시되지 않습니다 (또한 텍스트 콘텐츠 어딘가에 오류가 표시되지 않습니다). 레이아웃의 선택기를 선택기로 설정하면 자동 완료 기능도 작동하지 않지만 다시 전체 이름을 지정하면 x가있는 빨간색 원이 표시되지만 문제가 무엇인지 알려주지 않습니다.

0

내 응용 프로그램에서 작동합니다. 이거 한번 해봐.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/myGrey" 
     android:state_pressed="true" /> 
    <item android:drawable="@color/myBlack"/> 
</selector> 
관련 문제