Estou recebendo muitos erros do tipo exibidos no assunto. Esses erros parecem ocasionais e não posso reproduzi-los. Da pilha, posso aprender que esse erro pode ocorrer para meus diferentes recursos de layout. A linha de XML também está variando.
Alguém pode explicar por que esse erro ocorre? E o que posso fazer para corrigir esse problema?
Pilha
=============================================================
com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>
--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------
----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>
1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------
-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)
Aqui está um resultado do XML, no entanto, esse erro ocorre em outros xmls
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
</ViewFlipper>
<LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
<Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
<TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>
</LinearLayout>
<Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />
<FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>
</FrameLayout>
</merge>
android
xml
resources
android-inflate
Solvek
fonte
fonte
Respostas:
A exceção inflar não é realmente o problema, mas realmente vem de outro problema mais profundo no layout, que é agrupado em uma InflateException. Um problema comum é uma exceção de falta de memória ao tentar aumentar uma visualização de imagem carregando um recurso extraível. Se um desses recursos tiver uma alta resolução de pixels, seria necessária muita memória, causando uma exceção inflada.
Então, basicamente, verifique se a resolução de pixel nas imagens de drawables é apenas o mínimo necessário para o seu layout.
fonte
ViewFlipper
carrega todas as imagens na memória durante o inflamento do layout. Porque minhas imagens são grandes que leva muitos a memória, eu substituídoViewFlipper
comImageSwitcher
que pode mudar as imagens com animação comoViewFlipper
, mas ele carrega apenas uma imagem no momento.fonte
Isso também pode acontecer se você usar uma
VectorDrawable
biblioteca de suporte ao uso e se esquecer de usar emapp:srcCompat
vez deandroid:src
O erro exato é: Linha de arquivo XML binário #XX: Erro ao inflar a classe ImageView
Veja esse link
fonte
Eu tive o mesmo erro ao criar uma exibição personalizada com apenas um construtor, tente definir todo construtor para suas visualizações personalizadas.
fonte
Sei que a pergunta já foi respondida, mas ainda estou postando com a ideia de que alguém possa ter esse tipo de problema.
No meu caso, o problema é que estou carregando meu aplicativo para o telefone, que faz referência a layouts de res / layout / folder e valores para @dimens de res / values / dimens. Aqui está a font_22 que ele está tentando acessar e define em res / values-xlarge / dimens.
Na verdade, estou atualizando a interface do usuário do projeto existente.
Corri para esse problema porque estou usando o IDE Eclipse, onde clico + espaço para obter dicas ao escrever xml para a pasta de layout. Ele exibe todos os valores dos valores e a pasta values-xlarge, independentemente da pasta em que estou escrevendo.
Sei também que os valores nos dois arquivos devem ser iguais aos mapeados para telas diferentes.
Espero que isso ajude alguém a enfrentar esse tipo de problema bobo.
fonte
Encontrei o mesmo bug e encontrei o motivo principal:
Use o Contexto do Aplicativo para aumentar a exibição.
Inflar com o Contexto da Atividade corrigiu o erro.
fonte
O tamanho da minha imagem é de apenas 14 KB, mas o problema é que o designer me forneceu 1011px x 1819px (a resolução é muito alta, causando a InflateException)
fonte
Caso alguém tenha problemas semelhantes, eu tive um problema ao inflar a exibição:
View.inflate(getApplicationContext(), R.layout.my_layout, null)
corrigido substituindo
getApplicationContext()
porthis
fonte
Eu tive esse erro porque selecionei o tema como tema Material. Mas como eu estava tentando executar o aplicativo no 4.4.2, deu esse erro.
Solução: Selecione Theme_holo como tema
fonte
4.2.2
. Mas onde eu mudo do tema Material para Theme_holo? Não vejo a palavra-chave Material no meustyles.xml
ouv21/styles.xml
. Veja minha pergunta: stackoverflow.com/questions/37883677/…Este link pode ajudá-lo. Tente verificar se há problemas no manifesto. Se você conseguir que isso aconteça novamente, publique todo o rastreamento da pilha para que possamos ver qual é realmente o erro.
EDIT: Tenho certeza que você verificou isso, mas o que está na linha 12 do arquivo XML que você usa para o layout do TourActivity?
fonte
Para mim, a mensagem de erro era realmente insuficiente no gato de log, então aqui está o que eu fiz para descobrir o que causou o problema:
(Na mensagem de erro do gato de log, dizia que o erro ocorreu ao inflar um layout específico no meu HomeFragment.java)
Evaluate expression
:Run > Evaluate Expression
oualt - F8
tools:targetApi="lollipop"
(o bug ocorreu apenas em dispositivos mais antigos).fonte
Encontrei o mesmo erro e levamos dois dias para identificar qual era o erro.
O erro foi simplesmente porque eu estava tentando usar:
android:background
Ao invés de:
app:srcCompat
em um arquivo SVG.
No seu caso, acredito que é isso
Eu recomendo usá-lo desta maneira
adicione isso ao seu aplicativo build.gradle
e
Eu espero que isso ajude.
fonte
Sei que é uma pergunta respondida, mas não vejo a causa que enfrentei.
Foi que o Android Studio colocou meus drawables em / drawable-V24 Meu emulador é a API 23. Então, eventualmente, ele não consegue encontrá-lo.
A solução foi mover todos os drawables para a pasta / drawable (no -24).
fonte
Você deve copiar os arquivos de imagem da pasta "drawable-24" para a pasta "drawable".
fonte
Eu tive o mesmo erro e resolvi mover meus drawables da pasta drawable-mdpi para a pasta drawable. Levei algum tempo para perceber, porque no Eclipse tudo funcionava perfeitamente, enquanto no Android Studio eu recebia esses erros de execução feios.
Nota de edição: se você estiver migrando do eclipse para o Android Studio e seu projeto for proveniente do eclipse, isso pode acontecer, portanto, tenha cuidado para que no Android Studio as coisas sejam um pouco diferentes do eclipse.
fonte
No meu caso, esse erro ocorre quando eu uso o botão de ação flutuante e o defino
android:backgroundTint="#000"
. Então simplesmente não definabackgroundTint
e problema resolvido. Espero que seja útil para você.fonte
app:backgroundTint
vez deandroid:backgroundTint
.Para mim, meu problema era que eu estava
Para um plano de fundo LinearLayout, depois que o removi, o teste passou.
fonte
Eu tive esse problema agora e consegui descobrir o que era. Estava referenciando uma cor nos meus valores que estava causando problemas. Então, defini-lo manualmente, em vez de usar um das sugestões suspensas.
fonte
Eu tive o mesmo erro ao executar meu aplicativo na API lvl 16 (26 foi bom). Foi porque eu usei
?attrr/colorAccent
na minha forma drawable:Substituir isso por uma cor regular corrigiu meu problema.
fonte
Eu tive o mesmo problema e resolvi removendo o drawable-v24 com (24) na frente das imagens na pasta drawable e substituindo-as por drawables comuns.
fonte
Eu sei que esse tópico é antigo, mas ainda o respondo para que ninguém mais passe noites sem dormir.
Eu estava refatorando um projeto antigo, cujos arquivos de layout todos continham atributos codificados como
android:maxLength = 500
. Então decidi registrá-lo no meures/dimen
arquivo como<dimen name="max_length">500</dimen>
.Terminei de refatorar quase 30 arquivos de layout com meu valor de res. Adivinha? da próxima vez que executei meu projeto, ele começou a jogar o mesmo
InflateException
.Como solução, era necessário refazer todas as minhas alterações e manter todos esses valores iguais aos de antes.
TLDR;
passo 1: Tudo funcionando bem.
Etapa 2: Para aumentar minha manutenção, substituí
android:maxLength = 500
por<dimen name="max_length">500</dimen>
eandroid:maxLength = @dimen/max_length
, foi aí que tudo deu errado (travando comInflateException
).Etapa 3: tudo funcionando mal
Etapa 4: refazer todo o meu trabalho substituindo novamente
android:maxLength = @dimen/max_length
porandroid:maxLength = 500
refazer .Tudo foi corrigido.Etapa 5: tudo funcionando bem.
fonte
Resolvi movendo todos os meus itens desenháveis de drawable-v24 para drawable
fonte
Eu também enfrentei um problema semelhante. Embora para alguém isso possa ser um problema de vários usos ruins no Código, como
Um fator mais ignorado pode ser o uso do Contexto correto ao aumentar visualizações. Verifique se você não está usando o ApplicationContext onde um contexto de atividade é necessário. Enquanto, ApplicationContext possa não acabar sempre em erro, mas dependendo da sua hierarquia de visualizações, pode ser crucial.
Resolvi meu problema com um contexto MAU (usando ApplicationContext em vez de Activity em um período de 4 dias! Portanto, tente se isso resolver. Feliz codificação!
fonte
Eu havia enfrentado o mesmo problema, havia usado a tag view em xml, em vez de View. A substituição da classe View foi corrigida.
Espero que ajude você também ..
fonte
Precisamos verificar a versão da API. Eu costumava dar cor de fundo ao meu
LinearLayout
gostocom certeza tive o mesmo erro,
as_royalblue.xml
dentro dadrawable
pastae como eu o consertei , na verdade parece um problema de API, por isso precisamos verificar o nível da API se estiver acima da API 24 para que possamos usar da maneira que gostamos. Mas se for menor de 24 anos, precisamos evitar o uso, os juts dão uma cor normal ou uma cor e não uma gradiente de cor mista.
identifique seus layouts lineares e defina os fundos, se estiver ok
fonte
No meu caso, devo especificar o nome completo do pacote do componente de interface do usuário da biblioteca que eu uso no meu arquivo de layout.
fonte
Para mim, aconteceu porque tentei misturar imagens de gráficos vetoriais xml com png comuns no mesmo arquivo de layout,
somente depois de substituir os gráficos vetoriais xml por pngs, ele começou a funcionar
fonte
Resolvi esse problema, exclua suas imagens do drawable (v24) e cole-o na pasta drawable que funciona para mim.
fonte
Eu tive o mesmo erro em
Crashlytics
um dispositivo estranho: Motorola One Vision Android 5.1 e 20 GB (grátis) de RAM, com root Este dispositivo vem originalmente com Android 9.0, 4 GB de RAMProvavelmente alguém está tentando invadir o aplicativo que estou desenvolvendo no momento e tem problemas ao lidar com vários APKs. Portanto, não é possível encontrar drawables e o aplicativo fornece a falha
fonte