Eu recebi o seguinte teste de erro no Android 5.0 (API 21). Testado em outras versões do sistema operacional funciona bem.
java.lang.RuntimeException: Não foi possível iniciar a atividade ComponentInfo {... ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity}: android.view.InflateException: Linha de arquivo XML binário # 24: Erro ao inflar a classe android.webkit.WebView
Não é possível encontrar nada de especial sobre o layout xml, na linha 24:
<WebView
android:id="@+id/nav_fg_legal_detail_web"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
O código:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setTheme(R.style.AppTheme_NoActionBar)
setContentView(R.layout.legal_detail_activity) // crash here. Nothing done to web view yet.
Estou usando a biblioteca 'androidx.appcompat: appcompat: 1.1.0'.
Atualização : a pilha completa:
--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.byte_artisan.mchat2, PID: 4198
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.byte_artisan.mchat2/com.byte_artisan.mchat2.ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity}: android.view.InflateException: Binary XML file line #24: Error inflating class android.webkit.WebView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class android.webkit.WebView
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.byte_artisan.mchat2.ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity.onCreate(LegalDetailActivity.kt:18)
at android.app.Activity.performCreate(Activity.java:5937)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
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:607)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.byte_artisan.mchat2.ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity.onCreate(LegalDetailActivity.kt:18)
at android.app.Activity.performCreate(Activity.java:5937)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040002
at android.content.res.Resources.getText(Resources.java:274)
at android.content.res.Resources.getString(Resources.java:360)
at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:702)
at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:619)
at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:758)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:608)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:546)
at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:312)
at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:97)
at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:264)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:124)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:111)
at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:108)
at com.android.webview.chro
android
webview
android-appcompat
androidx
MiguelSlv
fonte
fonte
WebView
.Respostas:
Recentemente, enfrentei o mesmo: há um problema mencionado aqui , que ainda não foi resolvido. A falha ocorre apenas na API 21.
Existem poucas soluções que mencionam o downgrade das
androidx.appcompat:appcompat
versões. Essa resposta me ajudou. Além disso, existem outras soluções possíveis mencionadas, escolha a resposta que se aplica a você.EDIT: A falha também ocorre nas API 22 e 23 se o usuário não tiver o Google Play instalado.
EDIT 2: Conforme mencionado no rastreador de problemas aqui , e atualizar a
androidx.appcompat:appcompat
versão para 1.2.0-alpha02 está fornecendo a correção em alguns casos. Consulte uma discussão detalhada para encontrar uma solução alternativa adequada.Conforme mencionado por @MiguelSlv, adicionar este repositório maven é uma correção temporária. No entanto, todas as soluções alternativas acima têm efeitos colaterais. Como o bug ainda não foi corrigido, não é uma solução limpa.
fonte
Caused by: android.content.res.Resources$NotFoundException: String resource ID
favor, verifique com a solução fornecida, acho que ajudariaEsta resposta que estou escrevendo em março de 2020 pode ser alterada depois disso.
No meu caso, no build.gradle, no nível do aplicativo, mudei
implementation 'androidx.appcompat:appcompat:1.0.0'
paraimplementation 'androidx.appcompat:appcompat:1.2.0-alpha02'
e o problema foi resolvido.Outra configuração que eu já tenho, mas não as alterei: - Nível 1 do projeto Gradle
classpath 'com.android.tools.build:gradle:3.5.3'
2- e no Gradle-wrapper.properties eu tenho
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
3- e no nível de aplicativo gradle, observei
android { compileSdkVersion 29 buildToolsVersion '29.0.2'
que esta solução foi testada em dispositivo real com a versão Android 5fonte
Em 24 de abril de 2020, resolvi-o com o seguinte:
A versão anterior e não funciona está abaixo:
@canerkaseler
fonte
Eu tenho mais de dez aplicativos, todos os meus aplicativos têm "Inflar problemas". Eu estava tentando resolver problemas ... E testei com emuladores e dispositivos reais, eles não têm falhas ... Mas meu usuário assim! Finalmente, enquanto testava com emulador, peguei uma falha. Aqui está o resultado: Esta resposta foi escrita com 19 de abril de 2020:
as versões acima têm problemas sérios .... Criar caixa de diálogo, causar problemas de edição do Texttext ou TextView ...
as versões abaixo foram testadas um pouco, mas não houve falha
Ainda testando essas versões, compartilhará resultados
fonte