NameNotFoundException webview


116

Tôi nhận được lỗi từ Crashlytics cho biết rằng một số thiết bị thiếu com.google.android.webview. Làm sao nó có thể xảy ra?

java.lang.RuntimeException: Unable to start activity   ComponentInfo{com.myapp.app/com.myapp.ReaderActivity}: android.view.InflateException: Binary XML file line #29: Error inflating class com.myapp.MyWebView
       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(Method.java)
       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 #29: Error inflating class com.myapp.MyWebView
       at android.view.LayoutInflater.createView(LayoutInflater.java:633)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(SourceFile:206)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(SourceFile:20)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(SourceFile:297)
       at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(SourceFile:60)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
       at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(SourceFile:228)
       at android.support.v7.app.ActionBarActivity.setContentView(SourceFile:102)
       at com.myapp.ReaderActivity.onCreate(SourceFile:120)
       at android.app.Activity.performCreate(Activity.java:5933)
       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(Method.java)
       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(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:607)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(SourceFile:206)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(SourceFile:20)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(SourceFile:297)
       at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(SourceFile:60)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
       at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(SourceFile:228)
       at android.support.v7.app.ActionBarActivity.setContentView(SourceFile:102)
       at com.myapp.ReaderActivity.onCreate(SourceFile:120)
       at android.app.Activity.performCreate(Activity.java:5933)
       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(Method.java)
       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.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
       at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:161)
       at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:101)
       at android.webkit.WebView.getFactory(WebView.java:2185)
       at android.webkit.WebView.ensureProviderCreated(WebView.java:2180)
       at android.webkit.WebView.setOverScrollMode(WebView.java:2239)
       at android.view.View.(View.java:3581)
       at android.view.View.(View.java:3675)
       at android.view.ViewGroup.(ViewGroup.java:491)
       at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55)
       at android.webkit.WebView.(WebView.java:538)
       at android.webkit.WebView.(WebView.java:483)
       at android.webkit.WebView.(WebView.java:466)
       at android.webkit.WebView.(WebView.java:453)
       at com.myapp.MyWebView.(SourceFile:31)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:607)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(SourceFile:206)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(SourceFile:20)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(SourceFile:297)
       at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(SourceFile:60)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
       at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(SourceFile:228)
       at android.support.v7.app.ActionBarActivity.setContentView(SourceFile:102)
       at com.myapp.ReaderActivity.onCreate(SourceFile:120)
       at android.app.Activity.performCreate(Activity.java:5933)
       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(Method.java)
       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.pm.PackageManager$NameNotFoundException: com.google.android.webview
       at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:114)
       at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:133)
       at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:101)
       at android.webkit.WebView.getFactory(WebView.java:2185)
       at android.webkit.WebView.ensureProviderCreated(WebView.java:2180)
       at android.webkit.WebView.setOverScrollMode(WebView.java:2239)
       at android.view.View.(View.java:3581)
       at android.view.View.(View.java:3675)
       at android.view.ViewGroup.(ViewGroup.java:491)
       at android.widget.AbsoluteLayout.(AbsoluteLayout.java:55)
       at android.webkit.WebView.(WebView.java:538)
       at android.webkit.WebView.(WebView.java:483)
       at android.webkit.WebView.(WebView.java:466)
       at android.webkit.WebView.(WebView.java:453)
       at com.myapp.MyWebView.(SourceFile:31)
       at java.lang.reflect.Constructor.newInstance(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
       at android.view.LayoutInflater.createView(LayoutInflater.java:607)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(SourceFile:206)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(SourceFile:20)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(SourceFile:297)
       at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
       at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(SourceFile:60)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
       at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(SourceFile:228)
       at android.support.v7.app.ActionBarActivity.setContentView(SourceFile:102)
       at com.myapp.ReaderActivity.onCreate(SourceFile:120)
       at android.app.Activity.performCreate(Activity.java:5933)
       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(Method.java)
       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)

Và nó chỉ từ các thiết bị chạy Lollipop. Tôi đã kiểm tra nó trên Nexus 5 của mình, nhưng tôi không thể tái tạo lỗi. Tôi đang sử dụng proguard

MyWebView của tôi trông như thế này:

public class MyWebView extends WebView {

    public static final String tag = MyWebView.class.getName();
    private HtmlJSInterfaceNew js;

    public MyWebView(Context context) {
        super(context);
        gd = new GestureDetector(context, sogl);
        init();
    }

    public MyWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        gd = new GestureDetector(context, sogl);
        init();
    }

    public MyWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        gd = new GestureDetector(context, sogl);
        init();
    }

    @SuppressLint("NewApi")
    private void init() {
        setPadding(0, 0, 0, 0);
        MyWebViewClient myWebViewClient = new MyWebViewClient();        
        this.setWebViewClient(myWebViewClient);
        setWebChromeClient(new MyWebChromeClient());
        if(!isInEditMode())
        {
            getSettings().setAllowFileAccess(true);
            getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
            getSettings().setJavaScriptEnabled(true);
            WebSettings webSettings = getSettings();

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                webSettings.setAllowContentAccess(false);
            }

            webSettings.setUseWideViewPort(true);


        }


    }
    public void addMyJavascriptInterface(HtmlJSInterfaceNew htmlJSInterface, String string) {
        js = htmlJSInterface;
        addJavascriptInterface(htmlJSInterface, string);
    }

    public class MyWebChromeClient extends WebChromeClient
    {
        public void onProgressChanged(WebView view, int progress) {
        }
    }
}

Nguyên nhân sâu xa nhất là:

android.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
       at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:161)

Vì vậy, tôi đang nghĩ nó có thể liên quan gì đó đến proguard và có thể là JavascriptInterface. Có ý kiến ​​gì không?

CHỈNH SỬA: từ grepcode, tôi đã tìm thấy phương thức getFactoryClass:

private static Class<WebViewFactoryProvider> getFactoryClass() throws ClassNotFoundException {
        Application initialApplication = AppGlobals.getInitialApplication();
        try {
            // First fetch the package info so we can log the webview package version.
            String packageName = getWebViewPackageName();
            sPackageInfo = initialApplication.getPackageManager().getPackageInfo(packageName, 0);
            Log.i(LOGTAG, "Loading " + packageName + " version " + sPackageInfo.versionName +
                          " (code " + sPackageInfo.versionCode + ")");

            // Construct a package context to load the Java code into the current app.
            Context webViewContext = initialApplication.createPackageContext(packageName,
                    Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
            initialApplication.getAssets().addAssetPath(
                    webViewContext.getApplicationInfo().sourceDir);
            ClassLoader clazzLoader = webViewContext.getClassLoader();
            Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "Class.forName()");
            try {
                return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, true,
                                                                     clazzLoader);
            } finally {
                Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
            }
        } catch (PackageManager.NameNotFoundException e) {
            // If the package doesn't exist, then try loading the null WebView instead.
            // If that succeeds, then this is a device without WebView support; if it fails then
            // swallow the failure, complain that the real WebView is missing and rethrow the
            // original exception.
            try {
                return (Class<WebViewFactoryProvider>) Class.forName(NULL_WEBVIEW_FACTORY);
            } catch (ClassNotFoundException e2) {
                // Ignore.
            }
            Log.e(LOGTAG, "Chromium WebView package does not exist", e);
            throw new AndroidRuntimeException(e);
        }
    }

2
Tôi cũng thấy những điều này trong dữ liệu Crashlytics của chúng tôi. Chủ yếu là Lollipop nhưng cũng có một số 4.0.4. Các thiết bị bao gồm Nexus 7, Galaxy S5, Galaxy Discover. Được cho là không ai trong số họ được root. Làm thế nào / tại sao một thiết bị lại thiếu com.google.android.webview? Nó ảnh hưởng đến một số lượng rất nhỏ người dùng và chúng tôi có nhiều người dùng khác với những thiết bị này KHÔNG gặp sự cố này. Hmm ...
Robert Nekic

Câu trả lời:


99

Có khả năng điều này đang xảy ra trong khoảng thời gian rất ngắn ngay sau khi ứng dụng WebView hệ thống Android của Lollipop cập nhật.

Tôi đã thấy lỗi này trong Bảng điều khiển dành cho nhà phát triển của Google Play, nhưng cũng chưa bao giờ có thể tái tạo nó trên Nexus 5 của mình, bất kể tôi đã thực sự cố gắng ngăn ứng dụng của mình truy cập vào ứng dụng WebView của hệ thống Android đến mức nào:

java.lang.RuntimeException: Unable to create application com.uninteresting.app.name:
    android.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview

Sau đó, chúng tôi nhận được tin rằng ứng dụng của chúng tôi liên tục gặp sự cố với thông báo trên trên một số thiết bị ngay sau khi ứng dụng WebView hệ thống cập nhật, vì vậy tôi đã kiểm tra điều đó. Vẫn không có kết quả, Nexus 5 vani từ chối làm hỏng ứng dụng của chúng tôi! Vì vậy, tôi đã thử các điện thoại khác của các nhà sản xuất khác (khoảng 75% báo cáo của chúng tôi là từ các thiết bị Samsung Galaxy) và đột nhiên chúng tôi gặp sự cố liên tục. Phương pháp thử nghiệm của tôi:

  1. Mở ứng dụng của bạn, đảm bảo WebView đang hiển thị.
  2. Mở Cửa hàng Play, điều hướng đến "Ứng dụng của tôi" và hiển thị "Android System WebView". Gỡ cài đặt các bản cập nhật. Điều này sẽ không làm bạn gặp sự cố, nhưng bạn sẽ thấy ứng dụng của mình buộc khởi động lại.
  3. Mở ứng dụng của bạn sao lưu và để ứng dụng khôi phục sau khi khởi động lại.
  4. Quay lại Cửa hàng Play và cập nhật WebView của hệ thống Android.
  5. Tập trung lại ứng dụng của bạn trong quá trình cập nhật. Bây giờ, nếu bạn đang sử dụng một thiết bị bị ảnh hưởng, nó sẽ bị lỗi. Nếu không, ứng dụng của bạn sẽ chỉ được đẩy xuống nền và lặng lẽ khởi động lại.

Một vài lưu ý nhỏ với những gì tôi đã nói cho đến nay:

  • Ứng dụng của chúng tôi mắc lỗi khởi động WebView quá sớm , do đó, tại sao chúng tôi nhận được thông báo "không thể tạo ứng dụng" trong thông báo sự cố. Người dùng thậm chí không cần phải nhìn vào ứng dụng của chúng tôi để tìm sự cố. Tôi nghi ngờ điều này áp dụng cho bạn, nhưng nếu ứng dụng của bạn cố gắng khởi động lại hoạt động có chứa WebView trong trường hợp này, điều đó sẽ giải thích điều đó.
  • 100% báo cáo của chúng tôi là từ thiết bị 5.0, tôi không có manh mối nào về cách điều này có thể xảy ra trên bất kỳ thứ gì bên dưới Lollipop.
  • Chúng tôi thấy các báo cáo về Nexus 4 và Nexus 5 có lỗi này, vì vậy tôi không biết tại sao tôi không thể tái tạo lỗi trên các thiết bị đó. Có thể là một nguyên nhân gốc rễ riêng biệt, nhưng tôi cần phải xem xét sâu hơn về điều đó.

Tóm lại, tôi không nghĩ ngay rằng bạn đang làm bất cứ điều gì không chính xác với ProGuard hoặc JavascriptInterface của bạn. Tôi rất nghiêng về việc đổ lỗi cho phần sụn là nguyên nhân gốc rễ của phần lớn các báo cáo, dẫn đến những gì đáng lẽ phải là một quá trình cập nhật trơn tru lại trở thành một quá trình khiến một số ứng dụng gặp sự cố hoàn toàn.

Chỉnh sửa: Tôi đã chạy thêm một vài bài kiểm tra và hóa ra tất cả các thiết bị không bị lỗi là 5.0 hoặc 5.0.1, trong khi tất cả các thiết bị gặp sự cố là 5.0.2, vì vậy tôi không thể thoải mái chỉ tay vào OEM nữa.


Chúng tôi có một số lỗi được báo cáo trong dữ liệu Crashlytics từ người dùng Android 4.0.4, 4.2.2, 4.4.2, 5.0, 5.0.1, 5.0.2 và 5.1. Rất hiếm: khoảng 30 báo cáo cho một ứng dụng có vài triệu lượt cài đặt.
Robert Nekic

@RobertNekic Với số lượt cài đặt tương đương, chúng tôi mới chỉ thấy điều này trên 5.0 và 5.1 và dựa trên nguyên nhân của sự cố, tôi không thể biết nó sẽ xảy ra như thế nào trên bất kỳ thứ gì thấp hơn. Tôi muốn biết cụ thể điều gì gây ra những điều đó.
Riley C

1
@androiddeveloper Chỉ cần google để tìm: code.google.com/p/android/issues/detail?id=175124groups.google.com/forum/#!topic/google-admob-ads-sdk/… . Điều này dường như ảnh hưởng đến rất nhiều người.
Jared Burrows

2
Đây là thông tin chính xác từ một thành viên nhóm crom. code.google.com/p/chromium/issues/detail?id=506369 Có vẻ không thể được giải quyết vào lúc này
MatPag

1
@RileyC như Mat đã nói, nó sẽ không được sửa như đã nêu trong nhận xét này . Nó nói rằng nó có thể xảy ra khi ứng dụng WebView đang được cập nhật. Ứng dụng khởi động lại khi quá trình cài đặt hoàn tất.
Sufian

0

Điều này xảy ra khi chrome cập nhật trên android: trong quá trình cập nhật, gói không được tính là đã cài đặt và do đó, các nỗ lực tìm kiếm trong trình quản lý gói sẽ không thành công.

Đối với trường hợp của tôi, nó vẫn tồn tại một lúc lâu hơn (ứng dụng liên tục gặp sự cố) cho đến khi tôi thực sự khởi động lại / khởi động lại thiết bị , sau đó tất cả đều ổn.

Không có gì sai với mã của bạn, nó chỉ là cách các bản cập nhật được xử lý.

Nguồn: https://bugs.chromium.org/p/chromium/issues/detail?id=506369


0

Tôi đã tìm thấy một cách để tái tạo sự cố ( htc one (m8) android 6.0 ).
Trong ứng dụng của mình, tôi sử dụng thành phần WebView của Hệ thống Android khi bắt đầu (trong phương thức Activity.onCreate () ). Tôi biết rằng đây là một thực hành không tốt, nhưng đây chỉ là một ví dụ.

Các bước:

  1. mở Google Play và xóa các bản cập nhật của WebView hệ thống Android
  2. khởi chạy ứng dụng của bạn
  3. quay lại Google Play và khởi chạy cài đặt các bản cập nhật của WebView hệ thống Android và nhanh chóng quay lại ứng dụng của bạn và đợi ứng dụng của bạn đóng
  4. lặp lại bước 1 và nhanh chóng quay lại ứng dụng của bạn
  5. bạn sẽ thấy báo cáo lỗi
  6. xin lỗi vì tiếng Anh của tôi...
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.