NameNotFoundException webview


116

ฉันได้รับข้อผิดพลาดจาก Crashlytics ซึ่งบ่งชี้ว่าอุปกรณ์บางอย่างไม่มี com.google.android.webview มันเป็นไปได้อย่างไร?

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)

และมาจากอุปกรณ์ที่ใช้ Lollipop เท่านั้น ฉันได้ทดสอบกับ Nexus 5 แล้ว แต่ไม่สามารถสร้างข้อผิดพลาดซ้ำได้ ฉันใช้โปรการ์ด

MyWebView ของฉันมีลักษณะดังนี้:

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) {
        }
    }
}

สาเหตุส่วนใหญ่คือ:

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

ดังนั้นฉันคิดว่ามันอาจเกี่ยวข้องกับ proguard และอาจเป็น JavascriptInterface ความคิดใด ๆ ?

แก้ไข: จาก grepcode ฉันพบเมธอด 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
ฉันเห็นสิ่งเหล่านี้ในข้อมูล Crashlytics ด้วย Lollipop ส่วนใหญ่ แต่ยังมี 4.0.4 เล็กน้อย อุปกรณ์ต่างๆ ได้แก่ Nexus 7, Galaxy S5, Galaxy Discover คาดว่าไม่มีใครถูกรูท อย่างไร / ทำไมอุปกรณ์ถึงหายไป com.google.android.webview? ซึ่งส่งผลกระทบต่อผู้ใช้จำนวนน้อยมากและเรามีผู้ใช้รายอื่นจำนวนมากที่มีอุปกรณ์เหล่านี้ซึ่งไม่มีปัญหานี้ อืม ...
Robert Nekic

คำตอบ:


99

มีแนวโน้มว่าสิ่งนี้จะเกิดขึ้นในช่วงเวลาสั้น ๆ ทันทีหลังจากการอัปเดตแอปพลิเคชัน Android System WebView ของ Lollipop

ฉันเห็นข้อผิดพลาดนี้ใน Google Play Dev Console แต่ก็ไม่สามารถสร้างซ้ำบน Nexus 5 ของฉันได้ไม่ว่าฉันจะพยายามหยุดแอปของฉันมากแค่ไหนไม่ให้เข้าถึงแอป Android System WebView:

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

จากนั้นเราได้คำว่าแอปของเราขัดข้องอย่างต่อเนื่องโดยมีข้อความข้างต้นในอุปกรณ์บางเครื่องทันทีหลังจากอัปเดตแอป System WebView ดังนั้นฉันจึงทดสอบ ยังไม่มีผลลัพธ์วานิลลา Nexus 5 ปฏิเสธที่จะทำให้แอปของเราพัง! ดังนั้นฉันจึงลองใช้โทรศัพท์รุ่นอื่นจากผู้ผลิตรายอื่น (ประมาณ 75% ของรายงานของเรามาจากอุปกรณ์ Samsung Galaxy) และทันใดนั้นเราก็ขัดข้องอย่างต่อเนื่อง วิธีการทดสอบของฉัน:

  1. เปิดแอปของคุณตรวจสอบว่า WebView กำลังแสดงอยู่
  2. เปิด Play Store ไปที่ "แอปของฉัน" และเปิด "Android System WebView" ถอนการติดตั้งการอัปเดต สิ่งนี้ไม่ควรทำให้คุณผิดพลาด แต่คุณควรเห็นการบังคับให้แอปเริ่มต้นใหม่
  3. เปิดแอปของคุณสำรองและปล่อยให้แอปกู้คืนจากการรีสตาร์ท
  4. กลับไปที่ Play Store และอัปเดต Android System WebView
  5. โฟกัสแอปของคุณอีกครั้งในระหว่างกระบวนการอัปเดต ตอนนี้หากคุณใช้อุปกรณ์ที่ได้รับผลกระทบอุปกรณ์ควรจะขัดข้อง มิฉะนั้นแอปของคุณจะถูกผลักไปที่พื้นหลังและรีสตาร์ทแบบเงียบ ๆ

คำเตือนเล็กน้อยกับสิ่งที่ฉันได้พูดไปแล้ว:

  • แอปของเราเกิดข้อผิดพลาดในการเริ่มต้น WebView เร็วมากด้วยเหตุนี้เราจึง "ไม่สามารถสร้างแอปพลิเคชัน" ในข้อความแจ้งข้อขัดข้องของเรา ผู้ใช้ไม่จำเป็นต้องมองว่าแอปของเราทำงานผิดพลาด ฉันสงสัยว่าสิ่งนี้ใช้ได้กับคุณ แต่ถ้าแอปของคุณพยายามรีสตาร์ทกิจกรรมที่มี WebView ในสถานการณ์นี้ก็จะอธิบายได้
  • รายงานของเรา 100% มาจากอุปกรณ์ 5.0 ฉันไม่ทราบว่าสิ่งนี้เกิดขึ้นได้อย่างไรกับสิ่งใดก็ตามที่อยู่ด้านล่าง Lollipop
  • เราเห็นรายงานของ Nexus 4 และ Nexus 5 พร้อมข้อผิดพลาดนี้ดังนั้นฉันจึงไม่รู้ว่าทำไมฉันจึงไม่สามารถสร้างซ้ำบนอุปกรณ์เหล่านั้นได้ อาจเป็นสาเหตุที่แยกจากกัน แต่ฉันต้องพิจารณาเพิ่มเติมในเรื่องนั้น

ในระยะสั้นฉันไม่คิดว่าคุณกำลังทำอะไรผิดพลาดกับ ProGuard หรือ JavascriptInterface ของคุณในทันที ฉันเอนเอียงอย่างมากต่อการกล่าวโทษเฟิร์มแวร์ว่าเป็นสาเหตุหลักของรายงานส่วนใหญ่ส่งผลให้สิ่งที่ควรจะเป็นกระบวนการอัปเดตที่ราบรื่นกลายเป็นสิ่งที่ทำให้แอปบางตัวขัดข้องทันที

แก้ไข:ฉันทำการทดสอบอีกสองสามครั้งและปรากฎว่าอุปกรณ์ทั้งหมดที่ไม่พังคือ 5.0 หรือ 5.0.1 ในขณะที่อุปกรณ์ทั้งหมดที่เกิดปัญหาคือ 5.0.2 ดังนั้นฉันจึงไม่สามารถชี้นิ้วไปที่ OEM อีกต่อไป


เรามีข้อผิดพลาดจำนวนหนึ่งที่รายงานในข้อมูล Crashlytics จากผู้ใช้ที่ใช้ Android 4.0.4, 4.2.2, 4.4.2, 5.0, 5.0.1, 5.0.2 และ 5.1 หายากมาก: ประมาณ 30 รายงานสำหรับแอปที่มีการติดตั้งหลายล้านครั้ง
Robert Nekic

@RobertNekic ด้วยจำนวนการติดตั้งที่เทียบเคียงกันเราเคยเห็นสิ่งนี้ใน 5.0 และ 5.1 เท่านั้นและจากสาเหตุของปัญหาของเราฉันไม่เห็นว่ามันจะเกิดขึ้นได้อย่างไรกับสิ่งที่ต่ำกว่า ฉันอยากรู้ว่าอะไรเป็นสาเหตุของสิ่งเหล่านี้โดยเฉพาะ
Riley C

1
@androiddeveloper เพียงแค่ใช้ Google: code.google.com/p/android/issues/detail?id=175124และgroups.google.com/forum/#!topic/google-admob-ads-sdk/… . สิ่งนี้ดูเหมือนจะส่งผลกระทบต่อผู้คนจำนวนมาก
Jared Burrows

2
นี่คือข้อมูลที่ถูกต้องจากสมาชิกทีมโครเมียม code.google.com/p/chromium/issues/detail?id=506369ดูเหมือนว่าจะไม่สามารถแก้ไขได้ในขณะนี้
MatPag

1
@RileyC ตามที่ Mat กล่าวไว้มันจะไม่ได้รับการแก้ไขตามที่ระบุไว้ในความคิดเห็นนี้ มันบอกว่ามันอาจจะเกิดขึ้นเมื่อไคลเอนต์ WebView กำลังอัปเดต แอปจะรีสตาร์ทเมื่อการติดตั้งเสร็จสมบูรณ์
Sufian

0

สิ่งนี้เกิดขึ้นเมื่อ Chrome อัปเดตบน Android: ในระหว่างการอัปเดตแพ็กเกจจะไม่นับว่าติดตั้งแล้วดังนั้นการพยายามค้นหาในตัวจัดการแพ็กเกจจะล้มเหลว

สำหรับกรณีของฉันมันยังคงอยู่เป็นเวลานาน (แอพหยุดทำงาน) จนกว่าฉันจะรีบูต / รีสตาร์ทอุปกรณ์จริง ๆแล้วทุกอย่างก็เรียบร้อยดี

รหัสของคุณไม่มีอะไรผิดปกติเป็นเพียงวิธีจัดการการอัปเดต

ที่มา: https://bugs.chromium.org/p/chromium/issues/detail?id=506369


0

ฉันพบวิธีที่จะทำให้เกิดปัญหาอีกครั้ง ( htc one (m8) android 6.0 )
ในแอพของฉันฉันใช้คอมโพเนนต์Android System WebViewตั้งแต่เริ่มต้น (ในเมธอดActivity.onCreate () ) ฉันรู้ว่านี่เป็นการปฏิบัติที่ไม่ดี แต่นี่เป็นเพียงตัวอย่างเท่านั้น

ขั้นตอน:

  1. เปิดGoogle PlayและลบการอัปเดตของAndroid System WebView
  2. เปิดแอปของคุณ
  3. กลับไปที่Google Playและเริ่มการติดตั้งการอัปเดตของAndroid System WebViewและกลับไปที่แอปของคุณอย่างรวดเร็วและรอให้แอปของคุณปิด
  4. ทำซ้ำขั้นตอนที่ 1 และกลับไปที่แอปของคุณอย่างรวดเร็ว
  5. คุณจะเห็นรายงานข้อผิดพลาด
  6. ขอโทษสำหรับภาษาอังกฤษของฉัน ...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.