2016-06-08 3 views
4

내 개발 과정에서 매우 이상한 버그가 발생했습니다 ... 테스트를 거친 모든 API 버전에서 앱은 완벽하고 부드럽고 오류없이 실행되지만 API 21에서만 실행됩니다. 다음과 같은 오류가 발생합니다. 어떤 단서 어떻게 고칠 수 있습니다.Android API 21 9patch 오류가 발생 했습니까?

06-08 12:59:49.703 2865-2865/de.eplus.b2p.alditalk.mock_local E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: mypackage, PID: 2865 
                      java.lang.RuntimeException: Unable to start activity ComponentInfo{de.eplus.b2p.alditalk.mock_local/mypackage.LoginActivity}: android.view.InflateException: Binary XML file line #72: Error inflating class EditText 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2739) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2804) 
                       at android.app.ActivityThread.access$900(ActivityThread.java:181) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:145) 
                       at android.app.ActivityThread.main(ActivityThread.java:6066) 
                       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:1399) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
                      Caused by: android.view.InflateException: Binary XML file line #72: Error inflating class EditText 
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770) 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:511) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:366) 
                       at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                       at de.eplus.b2p.whitelabel.common.login.LoginActivity.onCreate(LoginActivity.java:290) 
                       at android.app.Activity.performCreate(Activity.java:6368) 
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2692) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2804)  
                       at android.app.ActivityThread.access$900(ActivityThread.java:181)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:145)  
                       at android.app.ActivityThread.main(ActivityThread.java:6066)  
                       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:1399)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  
                      Caused by: android.content.res.Resources$NotFoundException: File res/drawable-v21/abc_edit_text_material.xml from drawable resource ID #0x7f020015 
                       at android.content.res.Resources.loadDrawableForCookie(Resources.java:3761) 
                       at android.content.res.Resources.loadDrawable(Resources.java:3629) 
                       at android.content.res.TypedArray.getDrawable(TypedArray.java:762) 
                       at android.view.View.<init>(View.java:3991) 
                       at android.widget.TextView.<init>(TextView.java:1012) 
                       at android.widget.EditText.<init>(EditText.java:80) 
                       at android.widget.EditText.<init>(EditText.java:76) 
                       at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:60) 
                       at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:56) 
                       at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112) 
                       at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:980) 
                       at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039) 
                       at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732) 
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)  
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)  
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)  
                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:511)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:415)  
                       at android.view.LayoutInflater.inflate(LayoutInflater.java:366)  
                       at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                       at de.eplus.b2p.whitelabel.common.login.LoginActivity.onCreate(LoginActivity.java:290)  
                       at android.app.Activity.performCreate(Activity.java:6368)  
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)  
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2692)  
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2804)  
                       at android.app.ActivityThread.access$900(ActivityThread.java:181)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:145)  
                       at android.app.ActivityThread.main(ActivityThread.java:6066)  
                       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:1399)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  
                      Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #24: <nine-patch> requires a valid 9-patch source image 
                       at android.graphics.drawable.NinePatchDrawable.updateStateFromTypedArray(NinePatchDrawable.java:445) 
                       at android.graphics.drawable.NinePatchDrawable.inflate(NinePatchDrawable.java:401) 
                       at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1170) 
                       at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:185) 
                       at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1170) 
                       at android.graphics.drawable.InsetDrawable.inflate(InsetDrawable.java:105) 
                       at android.graphics.drawable.Drawable.cr 

이 문제를 해결할 수있는 사람이 있습니까? 파일

고해상도/당김-V21/abc_edit_text_material.xml

은 내가 추측 APPCOMPAT lib 디렉토리에 포함되어 있습니다 ... 난 이미, 청소 모든 것을 여러 번 빌드 도구를 업데이트 모두를 다시 설치하고 심지어 장치를 열심히 조사하지만, 아무 것도 바뀌지 않았습니다. 나는 몇 주 전에 일했다 ... 갑자기 이런 일이 일어 났고 무엇이 바뀌 었는지 모른다 ... (프로젝트에 손대지 않았다)

+1

'Android API 21 9patch error?'와'res/drawable-v21/abc_edit_text_material.xml'이 일치하지 않습니다. xml과 9 패치를 비교하는 방법은 무엇입니까? org.xmlpull.v1.XmlPullParserException : 이진 XML 파일 라인 # 24 : 에 유효한 9 패치 원본 이미지가 필요함 –

+2

발생 원인 : org.xmlpull.v1.XmlPullParserException : 이진 XML 파일 줄 # 24 : 에 유효한 9 패치 소스 이미지가 필요합니다. 스택 트레이스의 마지막 원인 – glethien

+1

그래, 정확하게 이전 주석에 추가 한 내용. 9 개의 패치 ** 이미지 **를 사용하고 있지 않다는 것을 알려줍니다. ** 이미지 **는 XML 파일과 다른 점을 유의하십시오. 대략 9 개의 패치에 대해 다소 혼란 스럽습니다. –

답변

5

나는 이것이 최신 gradle 플러그인 버전의 문제라고 생각한다. .

classpath 'com.android.tools.build:gradle:2.2.0-alpha3' 

을하고 난 당신과 같은 오류가 발생합니다 :

내가 사용하고 있습니다.

당신은 문제를 해결하기 위해 다시 플러그인의 버전으로 롤백 할 수 있습니다 : 당신이 미리 안드로이드 스튜디오 버전을 사용하는 경우

classpath 'com.android.tools.build:gradle:2.1.0' 

그러나 이것은 당신이 즉시 실행을 사용할 수 없음을 의미합니다. 참고로

내가 안드로이드 스튜디오를 사용하고 있습니다 :

Android Studio 2.2 Preview 3 
Build #AI-145.2949926, built on June 7, 2016 
JRE: 1.8.0_76-release-b01 x86_64 
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o 

은 내가 V21 장치에 시도하고 오류가 발생했습니다. < 21 또는> 21을 실행하는 장치에서 오류가 발생하지 않았습니다.

+1

Google에서이 문제를 알고있는 것으로 보입니다. 다행히도 곧 해결 될 것입니다. https://code.google.com/p/android/issues/detail?id=210467 – JRod

+0

여전히 안정적인 v2.2의 빌드로 화웨이 기기에 표시된 버그.1 릴리스의 gradle. v2.2.2에서 문제가 해결되기를 바랍니다. 그렇지 않으면 동일한 스택 추적과 관련된 버그가있을 수 있지만 Huawei와 관련이 있습니다. –

관련 문제