program tip

Android 지원 라이브러리를 23.2.0으로 업데이트하면 오류 발생 : XmlPullParserException 바이너리 XML 파일 줄 # 17

radiobox 2020. 9. 11. 07:50
반응형

Android 지원 라이브러리를 23.2.0으로 업데이트하면 오류 발생 : XmlPullParserException 바이너리 XML 파일 줄 # 17 태그에는 viewportWidth> 0이 필요합니다.


내 지원 라이브러리를 최대 23.2.0으로 업데이트하려고하면 다음 오류가 발생합니다.

Exception while inflating <vector>
org.xmlpull.v1.XmlPullParserException: Binary XML file line #17<vector> tag requires viewportWidth > 0
at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:535)
at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472)
at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436)
at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:829)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:303)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.chotot.vn.dev/com.chotot.vn.v2.activities.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.v7.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.v7.widget.Toolbar
at android.view.LayoutInflater.createView(LayoutInflater.java:620)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016
at android.content.res.Resources.loadDrawable(Resources.java:2091)
at android.content.res.Resources.getDrawable(Resources.java:695)
at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:897)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:837)
at android.content.res.Resources.loadDrawable(Resources.java:2087)
at android.content.res.Resources.getDrawable(Resources.java:695)
at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

나의 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:id="@+id/f_actionbar"
        android:name="com.chotot.vn.fragments.ActionBarFragment"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <android.support.v7.widget.Toolbar
        android:id="@+id/main_tool_bar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentTop="true"
        android:background="@color/action_bar_bg">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <include
                android:id="@+id/main_action_bar_layout"
                layout="@layout/layout_actionbar_custom_search"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_gravity="top" />

            <LinearLayout
                android:id="@+id/main_action_bar_layout_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/main_action_bar_layout"
                android:orientation="vertical" />
        </RelativeLayout>
    </android.support.v7.widget.Toolbar>

    <FrameLayout
        android:id="@+id/layout_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/main_tool_bar" />

</RelativeLayout>

어떻게 고칠 수 있습니까?


build.gradle 파일에서이 코드 사용

    //for Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Gradle 1.5를 사용하는 경우 대신

defaultConfig {
        generatedDensities = []
    }

    // This is handled for you by the 2.0+ Gradle Plugin
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }

나는 그들이 여기에 있는 다른 lib에서 벡터 드로어 블 콤팩트를 사용하고 있다고 생각 합니다.


23.4.0으로 업그레이드 할 수도 있습니다.

dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
}

이 기능을 수동으로 활성화하려면 플래그를 사용하십시오.

static
{
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

벡터를 사용하는 활동 내부.

출처 : 벡터 시대


appcompat gradle ( compile "com.android.support:appcompat-v7:23.2.0")을 제거하고 지원 디자인 ( compile 'com.android.support:design:23.1.1')으로 교체 하면 문제가 해결됩니다.


사전 롤리팝 장치에서는 ImageView의 다른 곳에서 VectorDrawable을 사용하기 위해 선택기를 만들어야합니다.

app:srcCompat="@drawable/your_vector_drawable"

선택자:

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

    <item android:drawable="@drawable/your_vector_drawable" />

</selector>

그런 다음이 선택기를 전달할 수 있습니다. 예를 들어 xml의 TextView drawableLeft / drawableRight에 대해

<TextView
        android:gravity="center_vertical"
        android:drawableLeft="@drawable/selector_your_vector_drawable"
        android:drawableStart="@drawable/selector_your_vector_drawable"
        android:drawableRight="@drawable/selector_your_vector_drawable"
        android:drawableEnd="@drawable/selector_your_vector_drawable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/your_string" />

대신 ContextCompat.getDrawable 바로 사용 AppCompatDrawableManager.get (). getDrawable을 .

이것은 23 이상의 버전에서 작동합니다.


사용 :

compileSdkVersion 24
buildToolsVersion '24.0.1'

라인을 제거 할 때까지 런타임에 충돌했습니다.

  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }

내 응용 프로그램 guild.gradle에서

최신 버전의 SDK를 혼동하는 것 같습니다.

이것이 다른 사람의 두통을 덜어주기를 바랍니다.


이 문제를 해결했습니다.

dependencies {

compile 'com.android.support:appcompat-v7:23.2.0'

compile 'com.android.support:design:23.2.0'
}

dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'

compile 'com.android.support:design:23.0.1'
}

위의 솔루션 중 몇 가지를 혼합하여 저에게 효과적이었습니다. 내가 한 일은 다음과 같습니다.

에 1.5.0 1.3.0에서 Gradle을 버전 변경 build.gradle프로젝트 같은

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

의 가지 아래 업데이트 build.gradle응용 프로그램

buildToolsVersion "23.0.2"

23.2.0에서 23.4.0으로 모듈 종속성 업데이트 :

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-vector-drawable:23.4.0'
compile 'com.android.support:animated-vector-drawable:23.4.0'

이제 사용중인 gradle 버전에 따라 다음 두 조각 중 하나를 사용합니다. gradle 1.5.0을 사용하고 있으므로 이것을 사용했습니다.

defaultConfig {
            generatedDensities = []
            }

    aaptOptions {
        additionalParameters "--no-version-vectors"
        }

그러나 Gradle 2.1.0을 사용하는 경우 대신 이것을 사용하십시오.

       defaultConfig {  
         vectorDrawables.useSupportLibrary = true  
         }

그리고 당신은 갈 수 있습니다. 나는 xml뿐만 아니라 프로그래밍 방식으로도 테스트했습니다. xml 파일에서 ImageView에서 이것을 사용했습니다.

app:srcCompat="@drawable/anim_droid"
// where droid_anim is an animated-vector file containing set of animations to animate different paths of the SVG file

프로그래밍 방식으로 수행하기 위해 다음을 사용했습니다.

    imageView.setImageResource(R.drawable.anim_droid);
    Drawable drawable = imageView.getDrawable();
    if (drawable instanceof Animatable) {
      ((Animatable) drawable).start();
    }

도움이 되었기를 바랍니다. 건배 :)


같은 문제가있었습니다. 실제로 빌드 도구 버전을 업그레이드하면 도움이되었습니다.

buildToolsVersion "23.0.2"

23.2.0으로 업데이트하면 api 19에서 충돌 문제가 발생합니다. 버전을 23.2.1로 업데이트하여이 문제를 해결했습니다. (이 질문에 답할 때 최신 버전입니다. 최신 버전으로 업데이트 해보세요. Google에서 수정되었을 수 있습니다.)

compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:support:23.2.1'.

최신 버전 buildToolsVersion사용해야합니다 (필요한 경우 SDK 관리자에서 다운로드).

샘플 Gradle :

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        ...
        vectorDrawables.useSupportLibrary = true
    }
    dependencies {
        ...
        compile 'com.android.support:appcompat-v7:24.0.0'
        ...
    }
}

Gradle에서 (gradle : 2.1.0) :

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

레이아웃에서 :

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:srcCompat="@drawable/you_vector_drawable"/>

이 문제가 있었지만 build : grade 버전으로 업데이트했습니다.

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

과:

buildToolsVersion "23.0.2"

성공!


교체 android:srcapp:srcCompat


내 앱의 새 버전을 만들 때 똑같은 문제에 놀랐습니다. appcompact에 대한 내 종속성이 자동 업데이트로 설정되었습니다.

compile 'com.android.support:appcompat-v7:23+'

따라서 새 버전을 사용할 수있게되면 (이 경우 버전 23.2.0) 빌드 중이던 이전 버전이 대체됩니다.

따라서 이전 버전의 appcompat 라이브러리 (빠른 수정)로 다시 전환 할 수 있습니다.

compile 'com.android.support:appcompat-v7:23.1.1'

또는 현재 라이브러리 버전을 유지하고 버전 23.2.0 릴리스 노트에서 Google이 설명한대로 Ajinkya 의 답변을 사용 합니다 . 나중을 선택하는 경우 gradle 빌드 도구를 버전 1.5.0으로 업데이트하는 것을 잊지 마십시오. 그렇지 않으면 generatedDensities다음 과 같은 새 매개 변수를 사용할 수 없습니다 .

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

동일한 문제에 직면하여이 솔루션으로 해결되었습니다.

수업에서 그냥

public class YourClass extends xxx {
    static {
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    }
    ...
}

아직 없다면 gradle 파일에 추가하십시오.

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

설정하여 수정했습니다 ..

compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1' and buildToolsVersion '24.0.0'

나도이 문제를 만났다.

compileSdkVersion 24
buildToolsVersion "22.0.1"

compileSdkVersion 24
buildToolsVersion "24.0.1"

build.gradle (Module : app)에 삽입합니다.

android {  
  defaultConfig {  
    vectorDrawables.useSupportLibrary = true  
  }  
}

dependencies {
    implementation 'com.android.support:appcompat-v7:26.1.0'
}

그런 다음 AppActivity에서 아래 코드를 사용하십시오.

 AppCompatResources.getDrawable(getContext(), R.drawable.ic_your);

가능한 경우 XML 리소스 파일 에서 android : srcandroid : background 대신 app : srcCompat 사용


이 문제가 있었지만 아래 버전으로 업데이트하면 문제가 해결되었습니다.

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

과:

buildToolsVersion "23.0.2"

모듈 종속성 :

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:support-v4:23.2.0'

compile 'com.google.android.gms:play-services:8.4.0'

교체하여 문제를 해결했습니다.

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:support-v4:23.2.0'

compile 'com.android.support:appcompat-v7:23.0.2'
compile 'com.android.support:support-v4:23.0.2'

Gradle 종속성을 최신 버전으로 업데이트했지만 프로젝트의 buildToolsVersion을 업데이트하는 것을 잊은 후 Android Studio 2.2에서 동일한 오류가 발생했습니다.

나는 변했다 :

compile 'com.android.support:appcompat-v7:22.2.1'

에:

compile 'com.android.support:appcompat-v7:24.2.1'

buildToolsVersion은 다음과 "22.0.1"같이 유지되었습니다 .

buildToolsVersion "22.0.1"

그래서 내가 한 것은 buildToolsVersion을 다음과 같이 24로 업데이트하는 것뿐입니다.

buildToolsVersion "24"

이전에 SDK Manager로 다운로드했기 때문입니다. 따라서 buildToolsVersionSDK Manager 에서 최신 버전 확인하고 종속성 버전과 일치하는지 확인하십시오.

이것이 누군가를 돕기를 바랍니다.


나를 위해 일한 것은 ... 내 xml 벡터 드로어 블의 네임 스페이스 선언에서 'https'에서 's'를 제거하는 것입니다.

이 XML은 Google Android 문서 자체에서 가져 왔습니다. 스크린 샷에서 xmlns가 'http'인 것을 볼 수 있지만 아래의 복사 가능 버전에서는 'https'입니다.

이렇게하면 Vector Asset 뷰어에서 렌더링 오류가 중지되지만 알 수없는 이유로 여전히 아무것도 볼 수 없습니다. 렌치처럼 보여야합니다.

드로어 블 폴더를 마우스 오른쪽 버튼으로 클릭하고 "새로 만들기-> 벡터 자산"을 클릭하면 작동하는 Android 아이콘 자산이 표시됩니다.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,8 2,8.67 2,9.5v7c0,0.83 0.67,1.5 1.5,1.5S5,17.33 5,16.5v-7C5,8.67 4.33,8 3.5,8zM20.5,8c-0.83,0 -1.5,0.67 -1.5,1.5v7c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5v-7c0,-0.83 -0.67,-1.5 -1.5,-1.5zM15.53,2.16l1.3,-1.3c0.2,-0.2 0.2,-0.51 0,-0.71 -0.2,-0.2 -0.51,-0.2 -0.71,0l-1.48,1.48C13.85,1.23 12.95,1 12,1c-0.96,0 -1.86,0.23 -2.66,0.63L7.85,0.15c-0.2,-0.2 -0.51,-0.2 -0.71,0 -0.2,0.2 -0.2,0.51 0,0.71l1.31,1.31C6.97,3.26 6,5.01 6,7h12c0,-1.99 -0.97,-3.75 -2.47,-4.84zM10,5L9,5L9,4h1v1zM15,5h-1L14,4h1v1z"/>

내 디자인과 appcompat-v7 모두 23.2.1과 buildToolsVersion 23.0.2를 사용합니다.

이것은 바로 안에 있습니다. '머티리얼 아이콘'인터페이스 파일-> 새-> 벡터 자산-> 머티리얼 아이콘 (그런 다음 아이콘을 클릭하고 렌치를 선택)에 의해 생성 된 렌치는 다음과 같습니다.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z"/>
</vector>

이 온라인 유틸리티 는 괜찮 았습니다. Chrome을 사용하세요. SVG를 안드로이드 벡터 드로어 블로 변환합니다.


문제는 :

/VdcInflateDelegate: Exception while inflating <vector>

해결책:

변경 compileSdkVersion 23 buildToolsVersion "23.0.2"compileSdkVersion 24 buildToolsVersion "24.0.2"

솔루션 코드 :

compileSdkVersion 24
buildToolsVersion '24.0.1'

위의 코드를 사용하여 문제를 해결했습니다.


build.gradle에 다음 종속성을 추가하십시오. 이것은 당신의 문제를 해결할 것입니다. 25.0.2 buildToolsVersion을 사용 하고 있습니다.

'com.android.support:support-vector-drawable:25.3.0'컴파일


FragmentActivity를 AppCompatActivity로 변경했는데 문제가 해결되었습니다. 내 환경은 다음과 같습니다.

compileSdkVersion = 25
buildToolsVersion = "25.0.0"
supportVersion = "25.2.0"

제 경우에는 솔루션이 효과가있었습니다.

사용하다

android:theme="@style/TextLabelWhite"

XML과 마찬가지로. 스타일 부모를 AppTheme 스타일로 변경하십시오.

<style name="TextLabelWhite" parent="AppTheme">

내 gradle에서 벡터 지원이 활성화되어 있고 최신 버전의 gradle, 빌드 도구, 지원 라이브러리 및 Android 스튜디오가 있지만 여전히 오류가 발생합니다.

내 경우에 대한 수정 사항 :

AppCompatDrawableManager.get().getDrawable(getContext(), R.drawable.drawable_xyz);

보푸라기 경고를 억제하려면 이것을 추가하십시오 @SuppressLint("RestrictedApi")


사용 시도 : 'com.android.support:design:23.1.1'컴파일

대신 : "com.android.support:appcompat-v7:23.2.0"컴파일


buildToolsVersion '26 .0.2 ' 에서도 관찰

buildToolsVersion '25 .0.3 '으로 다운 그레이드작동했습니다 .

buildToolsVersion '26 .0.2 '의 경우 : 위젯 용 AppCompat 사용 예 : TextView- > android.support.v7.widget.AppCompatTextView (이전 Android 버전 지원의 경우) 기기가 메모리로 인해 드로어 블을 확장 할 수없는 경우 저사양 기기에서도 관찰됩니다. (드로어 블이 res-> drawable dir에 존재하더라도) : 덜 복잡한 드로어 블을 변경해보십시오 .

참고 URL : https://stackoverflow.com/questions/35622438/update-android-support-library-to-23-2-0-cause-error-xmlpullparserexception-bin

반응형