Tento atualizar minha Biblioteca de Suporte para 23.2.0 e encontro este erro:
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)
E
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)
Minhas 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>
Como posso corrigir isso?
android
android-support-library
mr.icetea
fonte
fonte
24.0.0
se alguem tiver dicas sobre isso, por favor, compartilhe, eu realmente tentei de tudo.Respostas:
Use este código em seu arquivo build.gradle
Se você estiver usando Gradle 1.5, em vez disso usará
Eu acho que pode ser que eles estejam usando um compacto capaz de desenhar vetor embaixo em outro lib. Encontrado aqui
fonte
Could not find property 'vectorDrawables' on ProductFlavor_Decorated
Você também pode atualizar para 23.4.0
e use um sinalizador para habilitar manualmente essa funcionalidade:
dentro da atividade que usa os vetores.
Fonte: Idade dos vetores
fonte
com.android.support:appcompat-v7:25.3.1
o aplicativo na API 19. A configuração padrão é,vectorDrawables.useSupportLibrary = true
mas estava travando ao definir o drawable ImageSwitcher com um vetor. Finalmente, com essa instrução estática, posso setImageResource com o drawable vetorial. Parece que o Android SDK é incrível e imaturo.Remova o gradle appcompat (
compile "com.android.support:appcompat-v7:23.2.0"
) e substitua pelo design de suporte (compile 'com.android.support:design:23.1.1'
). Isso resolverá o problemafonte
Em dispositivos pré-pirulito, você precisa criar um seletor para usar VectorDrawable em outro lugar de ImageView
Seletor:
Então você pode passar este seletor, por exemplo, para TextView drawableLeft / drawableRight em xml
fonte
android:drawable
atribs em xml: s referenciando drawables vetoriais. É isso ou definir o drawable de fundo programaticamente. Wth!Em vez de ContextCompat.getDrawable , apenas use AppCompatDrawableManager.get (). GetDrawable .
Isso deve funcionar em versões superiores a 23. +
fonte
AppCompatDrawableManager.get().getDrawable(getContext(), R.drawable.drawable_xyz);
por código. Não tenho certeza de como funciona se declarado por xml.AppCompatResources.getDrawable(getContext(), R.drawable.drawable_xyz);
Usando:
Eu bati em tempo de execução até remover a linha
do meu aplicativo guild.gradle
Isso parece confundir a versão mais recente do SDK
Espero que isso evite a dor de cabeça de outra pessoa
fonte
app:srcCompat
To use VectorDrawableCompat, you need to set android.defaultConfig.vectorDrawable.useSupportLibrary = true.
? É muito confuso!Corrigi este problema substituindo
com
fonte
Uma mistura de algumas das soluções acima funcionou para mim. Aqui está o que eu fiz -
Alterar versão Gradle de 1.3.0 para 1.5.0 no
build.gradle
de projeto como esteAtualização abaixo as coisas em
build.gradle
de aplicativoDependências do módulo atualizadas de 23.2.0 para 23.4.0:
Agora, dependendo da versão do Gradle que você está usando, use um dos dois trechos a seguir. Como estou usando o gradle 1.5.0, usei este -
Mas se você estiver usando o Gradle 2.1.0, use isso
E então você está pronto para ir. Eu testei tanto em xml quanto programaticamente. No arquivo xml, usei isso no meu ImageView -
E para fazer isso programaticamente, usei este -
Espero que ajude! Felicidades :)
fonte
Tive o mesmo problema. Para mim, atualizar a versão das ferramentas de construção ajudou:
fonte
Enfrente o problema de travamento na API 19 ao atualizar para 23.2.0. Resolvi este problema atualizando a versão para 23.2.1. (A versão mais recente quando responder a esta pergunta. Tente atualizar para a mais recente, talvez o Google tenha corrigido)
fonte
'com.android.support:support:23.2.1'
?Certifique-se de usar o mais recente
buildToolsVersion
também (baixe do gerenciador do SDK, se necessário).Amostra de Gradle:
fonte
No Gradle (gradle: 2.1.0):
No layout:
fonte
Eu tive esse problema, mas atualizando para as versões build: grade:
E:
Sucesso!
fonte
Substitua
android:src
porapp:srcCompat
fonte
Fiquei surpreso com esse mesmo problema quando criei uma nova versão do meu aplicativo. Minha dependência do appcompact foi configurada para atualização automática.
Portanto, assim que uma nova versão estiver disponível (neste caso, a versão 23.2.0), ela substituirá a antiga com a qual você estava compilando.
Portanto, você pode voltar para a versão anterior da biblioteca appcompat (correção rápida):
Ou mantenha a versão atual da biblioteca e use a resposta de Ajinkya conforme explicado pelo google na nota de lançamento da versão 23.2.0 . Se você optar pelo último, não se esqueça de atualizar sua ferramenta de compilação do Gradle para a versão 1.5.0 ou você não poderá usar os novos parâmetros como
generatedDensities
:fonte
Enfrentando o mesmo problema, esta solução o corrigiu.
Na sua aula apenas faça
e também adicione isso ao seu arquivo Gradle, se ainda não.
fonte
Eu consertei definindo ..
fonte
Eu encontrei esse problema também, o que eu fiz: mudar
para
fonte
Insira em build.gradle (Módulo: app):
Depois, use o código abaixo, em sua AppActivity:
Quando disponível, use o app: srcCompat em vez de android: src e android: background , no arquivo de recurso XML
fonte
Eu tive esse problema, mas atualizar para as versões abaixo corrigiu para mim:
E:
Dependências do módulo:
fonte
Eu resolvi o problema substituindo
com
fonte
Recebi o mesmo erro no Android Studio 2.2 depois de atualizar minhas dependências do Gradle para as versões mais recentes, mas esqueci de atualizar o buildToolsVersion do meu projeto.
Eu mudei:
para:
Enquanto buildToolsVersion permaneceu
"22.0.1"
assim:Então, tudo que fiz foi atualizar o buildToolsVersion para 24 assim:
uma vez que foi baixado anteriormente com SDK Manager. Portanto, verifique o mais recente
buildToolsVersion
no SDK Manager e veja se ele corresponde à versão das dependências.Espero que isso ajude alguém.
fonte
Para mim, o que funcionou ... foi remover o 's' de 'https' na declaração de namespace do meu drawable vetorial xml.
Esse XML veio da própria documentação do Google Android. Você pode ver na captura de tela que o xmlns é 'http', mas na versão que pode ser copiada abaixo, é 'https'.
Isso interromperá os erros de renderização no visualizador do Vector Asset, mas você ainda não verá nada, por motivos que não entendi. Deve parecer uma chave inglesa.
Se você clicar com o botão direito do mouse na pasta drawables e "New -> Vector Asset", obterá um ícone de ativo Android que funciona.
Tanto meu design quanto meu appcompat-v7 usam 23.2.1 e buildToolsVersion 23.0.2.
A chave inglesa gerada pelo arquivo de interface de 'ícones de material' -> novo -> ativo de vetor -> ícone de material (clique no ícone e selecione a chave inglesa) é:
Este utilitário online foi bom para mim. Use o Chrome. Ele converte SVG em drawables vetoriais Android.
fonte
o problema era:
solução:
mudou
compileSdkVersion 23 buildToolsVersion "23.0.2"
paracompileSdkVersion 24 buildToolsVersion "24.0.2"
código da solução:
usando este código acima eu resolvi o problema
fonte
Basta adicionar a seguinte dependência em seu build.gradle. isso vai resolver o seu problema. estou a usar 25.0.2 buildToolsVersion.
compilar 'com.android.support:support-vector-drawable:25.3.0'
fonte
Mudei FragmentActivity para AppCompatActivity, o problema está resolvido. Meu ambiente é:
fonte
No meu caso, essa solução funcionou:
fonte
Embora eu tenha o suporte para vetor habilitado no meu gradle e tenha a versão mais recente do gradle, ferramentas de compilação, biblioteca de suporte e Android Studio, ainda recebo o erro.
Aqui está uma solução para o meu caso:
para suprimir o aviso do lint, adicione este
@SuppressLint("RestrictedApi")
fonte
tente usar: compile 'com.android.support:design:23.1.1'
em vez de: compilar "com.android.support:appcompat-v7:23.2.0"
fonte
Também observado em buildToolsVersion '26 .0.2 '
O downgrade para buildToolsVersion '25 .0.3 'funcionou .
Para buildToolsVersion '26 .0.2 ': experimente AppCompat para Widgets Exemplo: TextView -> android.support.v7.widget.AppCompatTextView (para suporte a versão mais antiga do Android) Também observado em dispositivos de última geração quando o dispositivo não consegue inflar drawables devido à memória falta. (Mesmo que o drawable exista em seu diretório res-> drawable): Tente alterar seu drawable por outros menos complexos .
fonte