Lỗi thổi phồng lớp android.webkit.WebView trên android 5


8

Tôi đã kiểm tra lỗi sau trên Android 5.0 (API 21). Đã thử nghiệm trên các phiên bản HĐH khác hoạt động tốt.

java.lang.

Không thể tìm thấy gì đặc biệt về bố cục xml, ở dòng 24:

<WebView
    android:id="@+id/nav_fg_legal_detail_web"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
  />

Mật mã:

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.

Tôi đang sử dụng thư viện 'androidx.appcompat: appcompat: 1.1.0'.

Cập nhật : ngăn xếp đầy đủ:

--------- 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

Thiết bị có cài đặt "Android System WebView" cập nhật không? Trên Android 5.0, IIRC, "ứng dụng" đó cung cấp sự can đảm phía sau WebView.
CommonsWare

Tôi chỉ cần kéo hình ảnh giả lập. Không.
MiguelSlv

Và không thể cài đặt nó, vì trình giả lập chưa cài đặt google play.
MiguelSlv

Hài hước, getPackageManager (). HasSystemFeature ("android.software.webview") cho biết nó đã được cài đặt nhưng hiện tại nó hiển thị trên trình quản lý ứng dụng.
MiguelSlv

Câu trả lời:


4

Gần đây tôi cũng đối mặt như vậy, Có một vấn đề được đề cập ở đây , chưa được giải quyết. Sự cố chỉ xảy ra trên API 21.

Có một vài giải pháp đề cập đến việc hạ cấp các androidx.appcompat:appcompatphiên bản. Câu trả lời này đã giúp tôi. Ngoài ra, có những cách giải quyết khác có thể được đề cập, chọn câu trả lời áp dụng cho bạn.

EDIT: Sự cố cũng xảy ra trên API 22 và 23 nếu người dùng không cài đặt Google Play.

EDIT 2: Như đã đề cập trong trình theo dõi vấn đề ở đây và việc nâng cấp androidx.appcompat:appcompatphiên bản lên 1.2.0-alpha02 sẽ cung cấp bản sửa lỗi trong một số trường hợp. Vui lòng đi qua một cuộc thảo luận chi tiết để tìm một cách giải quyết phù hợp.

Như đã đề cập bởi @MiguelSlv thêm này kho maven là một sửa chữa tạm thời, Tuy nhiên, tất cả các giải pháp trên có tác dụng phụ. Vì lỗi chưa được sửa nên nó không phải là giải pháp sạch.


Không chắc vấn đề bạn đề cập là giống nhau. Trong vấn đề của bạn, sự cố là về một tài nguyên. tôi không thấy nó trên lỗi stack của tôi.
MiguelSlv

1
Tôi nghĩ nó tương tự nhau, xin vui lòng xem vấn đề khác và thảo luận, kết luận rằng 1.2.0-alpha02` đã sửa nó. suetracker.google.com/issues/141351441#comment35
Sam.

1
@MiguelSlv Tôi đoán bạn đang gặp phải vấn đề tương tự từ stack stack, rõ ràng Caused by: android.content.res.Resources$NotFoundException: String resource IDvui lòng kiểm tra với giải pháp được cung cấp, tôi đoán nó sẽ giúp ích
Shadow Droid

1
@Sam. vui lòng cập nhật câu trả lời với điểm bạn đã đề cập trong bình luận
Shadow Droid

alpha01 không sửa nó cho tôi. Tôi cố gắng sử dụng sau đó alpha02, nhưng vì một số lý do, gradle không thể tìm thấy nó. tôi đã thêm kho lưu trữ của maven ' ci.android.com/builds/submit/6052626/androidx_snapshot/ .' Sửa đổi hàm tạo có thể có một số tác dụng phụ. Hãy tìm kiếm một giải pháp sạch cho trường hợp của tôi.
MiguelSlv

3

Câu trả lời này tôi đang viết vào tháng 3 năm 2020, có thể được thay đổi sau đó.

Trong trường hợp của tôi, trong build.gradle, mức độ ứng dụng, tôi đã thay đổi implementation 'androidx.appcompat:appcompat:1.0.0'đến implementation 'androidx.appcompat:appcompat:1.2.0-alpha02'và vấn đề được giải quyết.

Cấu hình khác tôi đã có nhưng tôi không thay đổi chúng: - Cấp độ dự án Gradle 1

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

2- và trong Gradle-wrapper.properies Tôi distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

3- và ở cấp độ ứng dụng lớp Tôi đã android { compileSdkVersion 29 buildToolsVersion '29.0.2' lưu ý rằng giải pháp này đã được thử nghiệm trên thiết bị thực với phiên bản Android 5


cảm ơn vì đã bình luận ... các nhà phát triển muốn có phiên bản ổn định mới nhất có thể xem liên kết này mvnreposective.com/artifact/androidx.appcompat/ trộm
Beyaz

Tôi đã sử dụng androidx mới nhất ... vẫn còn vấn đề chưa được giải quyết
Beyaz

Câu trả lời này là sai
Beyaz

@ Beyaz: nếu câu trả lời không hiệu quả với bạn, điều đó không có nghĩa là nó sai. vì nó đã giải quyết vấn đề của tôi và đã được 2 nhà phát triển khác bình chọn. cảm ơn vì đã hiểu
Atef Farouk

Gửi @Atef, tôi có hơn mười ứng dụng ... Tất cả các ứng dụng của tôi đều gặp sự cố với Android 5.1 ... Bạn đang nói rằng nó hoạt động cho bạn ... nhưng bạn đã nhầm ... Tôi vẫn đang cố gắng sửa lỗi này
Beyaz

2

Ngày 24 tháng 4 năm 2020, tôi đã giải quyết nó bằng cách này:

implementation 'androidx.appcompat:appcompat:1.2.0-beta01'

Phiên bản trước và không hoạt động là dưới đây:

implementation 'androidx.appcompat:appcompat:1.1.0'

@canerkaseler


2
Điều này làm việc cho tôi. 01 tháng 5 năm 2020
Yoannes Geissler

0

Tôi có hơn mười ứng dụng, Tất cả các ứng dụng của tôi đều có "Sự cố gây ra" Tôi đang cố gắng giải quyết vấn đề ... Và tôi đã thử nghiệm với trình giả lập và thiết bị thực, chúng không gặp sự cố ... Nhưng người dùng của tôi cũng vậy! Cuối cùng trong khi thử nghiệm với trình giả lập, tôi đã gặp sự cố .. Đây là kết quả: Câu trả lời này được viết vào ngày 19 tháng 4 năm 2020:

androidx.appcompat:appcompat:1.2.0-beta01
androidx.appcompat:appcompat:1.2.0-alpha03
androidx.appcompat:appcompat:1.2.0-alpha02

các phiên bản trên có vấn đề nghiêm trọng .... Tạo hộp thoại, gây ra sự cố thổi phồng Edittext hoặc TextView ...

các phiên bản dưới đây đã được thử nghiệm một chút nhưng không có sự cố

androidx.appcompat:appcompat:1.2.0-alpha01
androidx.appcompat:appcompat:1.1.0 

Vẫn đang thử nghiệm phiên bản này, sẽ chia sẻ kết quả

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.