Android에서 vector
을 사용하는 데 문제가 있습니다.
API24와 휴대 전화에서 테스트 할 때 모든 것이 잘 작동하는 동안 나는 android:background="@drawable/ic_blue2"
사용하여 내 Textview
의 배경으로 이미지를 표시합니다 (안드로이드 스튜디오에서 수입 SVG에서) 벡터를 사용하고, 시작할 때 응용 프로그램이 충돌 InflateException 및 Resources $ NotFoundException이있는 API22가있는 전화.
저는 Gradle vectorDrawables.useSupportLibrary = true
에 추가하는 것과 같은 이전 게시물에 대한 답변을 시도했지만 작동하지 않았습니다.
Android Studio 3.0.1 및 Gradle 3.0.1을 사용하고 있습니다. 내 활동은 AppCompatActivity가 아니라 "활동"을 확장한다는 점에 유의하십시오 (여기에 중요한지는 모르겠 음). 여기
레이아웃의 코드입니다 : https://pastebin.com/DRR5eRm0그리고 API22에 오류 (파일이 너무 큰)
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackgroundWhite"
tools:context="jdev.com.handtwist.MainMenu">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ic_gray7"
android:orientation="vertical">
<TextView
android:id="@+id/textViewAppname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ic_blue7"
android:padding="10dp"
android:text="test"
android:textAlignment="center"
android:textColor="@color/colorBackgroundWhite"
android:textSize="36sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="30dp"
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:paddingTop="20dp"
tools:layout_editor_absoluteY="100dp">
<Button
android:id="@+id/buttonSolo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ic_blue2"
android:padding="10dp"
android:text="@string/solo"
android:textAlignment="center"
android:textColor="@color/colorBackgroundWhite"
android:textSize="24sp" />
<Button
android:id="@+id/buttonMulti"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/ic_blue2"
android:padding="10dp"
android:text="@string/multi"
android:textAlignment="center"
android:textColor="@color/colorBackgroundWhite"
android:textSize="24sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:orientation="vertical">
<TextView
android:id="@+id/textViewVersion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Version"
android:textAlignment="center"
android:textColor="@color/colorBackgroundWhite" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
내가 배경으로 사용하려고 XML의 예
E/AndroidRuntime: FATAL EXCEPTION: main
Process: jdev.com.handtwist, PID: 4666
java.lang.RuntimeException: Unable to start activity ComponentInfo{jdev.com.handtwist/jdev.com.handtwist.MainMenu}: android.view.InflateException: Binary XML file line #0: Error inflating class <unknown>
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3160)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:640)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:450)
at android.app.Activity.setContentView(Activity.java:2400)
at jdev.com.handtwist.MainMenu.onCreate(MainMenu.java:40)
at android.app.Activity.performCreate(Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:614)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:450)
at android.app.Activity.setContentView(Activity.java:2400)
at jdev.com.handtwist.MainMenu.onCreate(MainMenu.java:40)
at android.app.Activity.performCreate(Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v21/ic_gray7.xml from drawable resource ID #0x7f0603a5
at android.content.res.Resources.loadDrawableForCookie(Resources.java:4061)
at android.content.res.Resources.loadDrawable(Resources.java:3929)
at android.content.res.Resources.loadDrawable(Resources.java:3779)
at android.content.res.TypedArray.getDrawable(TypedArray.java:776)
at android.view.View.<init>(View.java:4001)
at android.view.ViewGroup.<init>(ViewGroup.java:513)
at android.widget.LinearLayout.<init>(LinearLayout.java:199)
at android.widget.LinearLayout.<init>(LinearLayout.java:195)
at android.widget.LinearLayout.<init>(LinearLayout.java:191)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:614)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:450)
at android.app.Activity.setContentView(Activity.java:2400)
at jdev.com.handtwist.MainMenu.onCreate(MainMenu.java:40)
at android.app.Activity.performCreate(Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v22/$ic_gray7__0.xml from color state list resource ID #0x7f060118
at android.content.res.Resources.twLoadColorStateList(Resources.java:4179)
at android.content.res.Resources.loadColorStateList(Resources.java:4117)
at android.content.res.TypedArray.getColor(TypedArray.java:397)
at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1439)
at android.graphics.drawable.VectorDrawable$VFullPath.inflate(VectorDrawable.java:1418)
at android.graphics.drawable.VectorDrawable.inflateInternal(VectorDrawable.java:544)
at android.graphics.drawable.VectorDrawable.inflate(VectorDrawable.java:460)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1192)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1086)
at android.content.res.Resources.loadDraw
나를 도울 수있는 사람 덕분에.
편집 : 벤의 접근 오류 사용하려고 할 때 : XML 벡터 드로어 블을위한
E/AndroidRuntime: FATAL EXCEPTION: main
Process: jdev.com.handtwist, PID: 16157
java.lang.RuntimeException: Unable to start activity ComponentInfo{jdev.com.handtwist/jdev.com.handtwist.MainMenu}: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v21/ic_testb.xml from drawable resource ID #0x7f0603ce
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3160)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v21/ic_testb.xml from drawable resource ID #0x7f0603ce
at android.content.res.Resources.loadDrawableForCookie(Resources.java:4061)
at android.content.res.Resources.loadDrawable(Resources.java:3929)
at android.content.res.Resources.getDrawable(Resources.java:1991)
at android.content.res.Resources.getDrawable(Resources.java:1973)
at android.content.Context.getDrawable(Context.java:409)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:351)
at jdev.com.handtwist.MainMenu.onCreate(MainMenu.java:63)
at android.app.Activity.performCreate(Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v22/$ic_testb__0.xml from color state list resource ID #0x7f060295
at android.content.res.Resources.twLoadColorStateList(Resources.java:4179)
at android.content.res.Resources.loadColorStateList(Resources.java:4117)
at android.content.res.TypedArray.getColor(TypedArray.java:397)
at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1439)
at android.graphics.drawable.VectorDrawable$VFullPath.inflate(VectorDrawable.java:1418)
at android.graphics.drawable.VectorDrawable.inflateInternal(VectorDrawable.java:544)
at android.graphics.drawable.VectorDrawable.inflate(VectorDrawable.java:460)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1192)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1086)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:4045)
at android.content.res.Resources.loadDrawable(Resources.java:3929)
at android.content.res.Resources.getDrawable(Resources.java:1991)
at android.content.res.Resources.getDrawable(Resources.java:1973)
at android.content.Context.getDrawable(Context.java:409)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:351)
at jdev.com.handtwist.MainMenu.onCreate(MainMenu.java:63)
at android.app.Activity.performCreate(Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #0: invalid drawable tag gradient
at android.content.res.ColorStateList.twCreateFromXmlInner(ColorStateList.java:176)
at android.content.res.ColorStateList.twCreateFromXml(ColorStateList.java:147)
at android.content.res.Resources.twLoadColorStateList(Resources.java:4175)
at android.content.res.Resources.loadColorStateList(Resources.java:4117)
at android.content.res.TypedArray.getColor(TypedArray.java:397)
at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1439)
at android.graphics.drawable.VectorDrawable$VFullPath.inflate(VectorDrawable.java:1418)
at android.graphics.drawable.VectorDrawable.inflateInternal(VectorDrawable.java:544)
at android.graphics.drawable.VectorDrawable.inflate(VectorDrawable.java:460)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1192)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1086)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:4045)
at android.content.res.Resources.loadDrawable(Resources.java:3929)
at android.content.res.Resources.getDrawable(Resources.java:1991)
at android.content.res.Resources.getDrawable(Resources.java:1973)
at android.content.Context.getDrawable(Context.java:409)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:351)
at jdev.com.handtwist.MainMenu.onCreate(MainMenu.java:63)
at android.app.Activity.performCreate(Activity.java:6609)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:7007)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
res/drawable-anydpi-v21/ic_gray7.xml을로드하는 데 문제가있는 것처럼 보입니다. v22보다 상위 버전의 API에 대한 버전이 있습니까? 이 드로어 블의 내용을 추가 할 수 있습니까? –
다른 API에 대해서는 (현재로서는) 테스트 할 수 없습니다. 내가 사용하려고하는 XML 파일의 내용을 게시물에 추가했습니다. –