Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Printing Sight Reduction Form sometimes crashes app #3

Open
GeraldR63 opened this issue Feb 23, 2023 · 3 comments
Open

Printing Sight Reduction Form sometimes crashes app #3

GeraldR63 opened this issue Feb 23, 2023 · 3 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@GeraldR63
Copy link
Owner

GeraldR63 commented Feb 23, 2023

This is an Android Feature and probably related only to Epson Print Enabler. What happens here is that the Sight Reduction Form is generated as HTML in a WebView.

The code is simple and "state of the art". I added some code to make it "safer". Such as a try catch block and some checks for "null pointer". It sometimes crashes at "

        final WebView webView = new WebView(activity);

Well, the given activity is the one of the "Nautical Almanac" window. Any others will crash this not sometimes but every time. If it crashes than "the system" (whole Android cell phone) is busy and at the debug trace you find the message:

The application may be doing too much work on its main thread

This come from the printer driver. I don't think that it come from my code.

Code snippet:
=============================BEGIN

try {
        final WebView webView = new WebView(activity);
        this.activity = activity;
        // Generate an HTML document on the fly:
        String htmlDocument = "<html>" +
                "<head>" +
                "<style>" +
                "table, th, td {" +
                "table-layout: fixed ;" +
                "border: 2px solid black ;" +
                "border-collapse: collapse;" +
                "}" +
                "</style>" +
                " </head>" +
                "<body >" +
                "<h1>Sight Reduction Form</h1>" +
                "Code of table deleted."+
                "</body></html>";


        webView.loadDataWithBaseURL(null, htmlDocument, "text/HTML", "UTF-8", null);
        // Keep a reference to WebView object until you pass the PrintDocumentAdapter
        // to the PrintManager
        mWebView = webView;
        webView.setWebViewClient(new WebViewClient() {

            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                //Log.i(TAG, "page finished loading " + url);
                System.out.println("onPageFinished");
                if (mWebView != null) {
                    createWebPrintJob(view);
                    mWebView = null;
                }
            }
        });
    }
    catch (Exception e)
    {
        System.out.println("printSightReduction "+e.getMessage());
    }
}
private void createWebPrintJob(WebView webView) {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        PrintManager printManager = (PrintManager) this.activity.getSystemService(Context.PRINT_SERVICE);
        PrintDocumentAdapter printAdapter = null;
        printAdapter = webView.createPrintDocumentAdapter("SightReductionForm");
        String jobName = this.activity.getString(R.string.app_name) + " SRF";
        printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build());
    }
    else{
        Toast.makeText(this.activity, "Print job has been canceled! ", Toast.LENGTH_SHORT).show();
    }
}

=============================BEGIN

The whole error trace is (if it happens, sometimes not often):

=============================Exception Java Stack Begin
I/WebViewFactory: Loading com.android.chrome version 103.0.5060.129 (code 506012923)
I/zygote64: Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor" on path: DexPathList[[zip file "/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/lib/arm64, /data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
I/zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64:
I/zygote64: Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor" on path: DexPathList[[zip file "/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/lib/arm64, /data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
I/zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64:
I/zygote64: Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor" on path: DexPathList[[zip file "/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/lib/arm64, /data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
I/zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64:
I/zygote64: Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor" on path: DexPathList[[zip file "/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/lib/arm64, /data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
I/zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64:
I/zygote64: Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor" on path: DexPathList[[zip file "/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/lib/arm64, /data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
I/zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64:
I/zygote64: Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor" on path: DexPathList[[zip file "/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/lib/arm64, /data/app/com.android.chrome-TbJUbHWrq9y8TfR0U3p5AQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
I/zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote64: at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
I/zygote64: at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:453)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getWebViewProviderClass(java.lang.ClassLoader) (WebViewFactory.java:151)
I/zygote64: at java.lang.Class android.webkit.WebViewFactory.getProviderClass() (WebViewFactory.java:418)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() (WebViewFactory.java:212)
I/zygote64: at android.webkit.WebViewFactoryProvider android.webkit.WebView.getFactory() (WebView.java:2467)
I/zygote64: at void android.webkit.WebView.ensureProviderCreated() (WebView.java:2462)
I/zygote64: at void android.webkit.WebView.setOverScrollMode(int) (WebView.java:2527)
I/zygote64: at void android.view.View.(android.content.Context) (View.java:4552)
I/zygote64: at void android.view.View.(android.content.Context, android.util.AttributeSet, int, int) (View.java:4684)
I/zygote64: at void android.view.ViewGroup.(android.content.Context, android.util.AttributeSet, int, int) (ViewGroup.java:597)
I/zygote64: at void android.widget.AbsoluteLayout.(android.content.Context, android.util.AttributeSet, int, int) (AbsoluteLayout.java:55)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
I/zygote64: at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
I/zygote64: at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
I/zygote64: at void com.nav.astronavigator.printSightRedcution.doWebViewPrint(android.app.Activity) (printSightRedcution.java:31)
I/zygote64: at void com.nav.astronavigator.NauticalAlmanac$1.onClick(android.view.View) (NauticalAlmanac.java:247)
I/zygote64: at boolean android.view.View.performClick() (View.java:6291)
I/zygote64: at boolean com.google.android.material.button.MaterialButton.performClick() (MaterialButton.java:1219)
I/zygote64: at void android.view.View$PerformClick.run() (View.java:24931)
I/zygote64: at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:808)
I/zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:101)
I/zygote64: at void android.os.Looper.loop() (Looper.java:166)
I/zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7529)
I/zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:245)
I/zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:921)
I/zygote64:
I/cr_WVCFactoryProvider: Loaded version=103.0.5060.129 minSdkVersion=24 isBundle=true multiprocess=true packageId=3
I/cr_LibraryLoader: Successfully loaded native library
I/cr_CachingUmaRecorder: Flushed 9 samples from 9 histograms.

=============================Exception Java Stack End

If everything works fine you should see what you will find at
"https://github.com/GeraldR63/AstroNavi/blob/main/Printer%20Preview.jpg".

This is an issue but I guess it's much more an Epson or Android OS issue.

@GeraldR63 GeraldR63 self-assigned this Feb 23, 2023
@GeraldR63 GeraldR63 added the help wanted Extra attention is needed label Feb 23, 2023
@GeraldR63
Copy link
Owner Author

GeraldR63 commented Feb 23, 2023

The fault was in my code.
I instantiated the printSightRedcution inside a push button on click event. Since the whole printjob is asynchronous and works independent from the AstroNavigator app it was required to have this class instantiated in a class where it longer exists. The point is that the message in the Status field in the "Nautical Almanac" dialog appear before the "Printer Dialog" and preview was loaded but after that the code is at the end and the block will be destroyed. The garbage collector will clean up the instantiated object more or less fast.

That's why I moved the bold line of code out of the "setOnClickListener". Now it seems to be much more stable.

===========================Code snippet Begin
printSightRedcution = new printSightRedcution(NADataAndCalc);
pbPrintSightReductionForm.setOnClickListener(new View.OnClickListener() {
@OverRide
public void onClick(View view) {
// ToDo: Print the Sight Reduction
try {
if (NADataAndCalc!=null) {
// Moved outside the event handler printSightRedcution = new printSightRedcution(NADataAndCalc);
printSightRedcution.doWebViewPrint(getActivity());
// Function above come back before preview was shown or SRF was printed. The app run in the background.
// This change made it much more stable.
mdfStatus.setBackgroundColor(Color.WHITE);
mdfStatus.setText("Printing Sight Reduction Form");
}
else {
mdfStatus.setBackgroundColor(Color.WHITE);
mdfStatus.setText("No printable calculation");
}
}
catch (Exception e)
{
mdfStatus.setBackgroundColor(Color.RED);
mdfStatus.setText(e.getMessage());
}
}
});
===========================Code snippet End

@GeraldR63
Copy link
Owner Author

In the emulator it works perfect. Seem to be really a problem of the Epson driver. Especially under heavy CPU load this problem was seen.

@GeraldR63
Copy link
Owner Author

Additional Remark: In emulation mode this works also perfect. In my opinion just a problem of the CPU power of the cellphone.

@GeraldR63 GeraldR63 reopened this Mar 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant