Localization icon indicating copy to clipboard operation
Localization copied to clipboard

crash on using webview

Open hsiami opened this issue 3 years ago • 21 comments

when I change locale and then use webview app crashes for the first time.

var webview = WebView(this)

java.lang.RuntimeException: Package not found: com.android.webview
    at android.webkit.WebViewDelegate.getPackageId(WebViewDelegate.java:191)
    at lb.a(PG:16)
    at ks.run(PG:14)
    at java.lang.Thread.run(Thread.java:919)

hsiami avatar Apr 20 '21 07:04 hsiami

@hsiami Did you tried to test on Android Emulator or Physical device?

akexorcist avatar Apr 20 '21 10:04 akexorcist

Refer to stack trace from https://stackoverflow.com/questions/47944586/package-not-found-com-android-chrome

java.lang.RuntimeException: Package not found: com.android.chrome
    at android.webkit.WebViewDelegate.getPackageId(WebViewDelegate.java:164)
    at com.android.webview.chromium.ig.L(WebViewDelegateFactory.java:16)
    at com.android.webview.chromium.WebViewChromiumFactoryProvider.h(WebViewChromiumFactoryProvider.java:177)
    at com.android.webview.chromium.se.run(WebViewChromiumFactoryProvider.java:5)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6809)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

This seems not related to my library. But I will keep this issue because crashing might caused by Resource class from my library.

/**
 * Returns the package id of the given {@code packageName}.
 */
public int getPackageId(Resources resources, String packageName) {
    SparseArray<String> packageIdentifiers =
            resources.getAssets().getAssignedPackageIdentifiers();
    for (int i = 0; i < packageIdentifiers.size(); i++) {
        final String name = packageIdentifiers.valueAt(i);
        if (packageName.equals(name)) {
            return packageIdentifiers.keyAt(i);
        }
    }
    throw new RuntimeException("Package not found: " + packageName);
}

akexorcist avatar Apr 20 '21 10:04 akexorcist

@hsiami Did you tried to test on Android Emulator or Physical device?

I tried on both Emulator and physical device

hsiami avatar Apr 20 '21 10:04 hsiami

Without your library app doesn't crash. and with your library app crashes only when I change the locale and then create an instance of WebView.

No idea yet?

hsiami avatar Apr 21 '21 05:04 hsiami

for solving webview problem I used this library instead: https://github.com/YarikSOffice/lingver

hsiami avatar Apr 22 '21 08:04 hsiami

@hsiami Thank you for alternative library suggestion.

I will fix this issue soon. In Lingver library, there're some information about WebView issue that might useful for me to solve this issue.

akexorcist avatar Apr 27 '21 16:04 akexorcist

I also have this problem Did you find any solution for it?

@hsiami Thank you for alternative library suggestion.

I will fix this issue soon. In Lingver library, there're some information about WebView issue that might useful for me to solve this issue.

omidahmadian avatar May 10 '21 10:05 omidahmadian

I also have this problem Did you find any solution for it?

@hsiami Thank you for alternative library suggestion. I will fix this issue soon. In Lingver library, there're some information about WebView issue that might useful for me to solve this issue.

for solving webview problem I used this library instead: https://github.com/YarikSOffice/lingver

hsiami avatar May 10 '21 10:05 hsiami

It's crashing on webview randomly.

ashutoshgohil avatar May 11 '21 05:05 ashutoshgohil

@akexorcist I can see you have resolved the crash issue (saw in commits) but when I try updating library from 1.2.9 -> 1.2.10 but ended with the following error. Could not find com.akexorcist:localization:1.2.10.

nagesh-kashyap-r avatar May 11 '21 07:05 nagesh-kashyap-r

@nagesh-kashyap-r still in testing please wait until tomorrow

akexorcist avatar May 11 '21 08:05 akexorcist

1.2.10 is live. please check on your project and don't forget to give me a feedback.

akexorcist avatar May 11 '21 10:05 akexorcist

@akexorcist Thanks!!!! Crash issue is resolved!

nagesh-kashyap-r avatar May 11 '21 12:05 nagesh-kashyap-r

I also get the same issue. Only for the first time. The library is very good. I could change any language on my app. But I got this issue. Hope you fix it soon. Ver 1.2.10 and Android 7.0

huunhan18pro avatar May 25 '21 13:05 huunhan18pro

@akexorcist I have tried the 1.2.10 and I get the error when creating an instance of WebView or just setting it to debug. I tried to replicate it in the sample app in the repository, but I couldn't.

Do you have any tips ?

juliocbcotta avatar Jul 13 '21 08:07 juliocbcotta

This crash issue is still rising with version com.akexorcist:localization:1.2.10. The crash is only occurring when user try to open the webView with fresh install.

MobatiaArshad avatar Jul 23 '21 04:07 MobatiaArshad

for solving webview problem I used this library instead: https://github.com/YarikSOffice/lingver

lingver is better. Thanks

fukemy avatar Nov 11 '21 07:11 fukemy

Note: From my investigation, this happen when user change the language to another language then open WebView.

https://user-images.githubusercontent.com/1949576/145110103-e990923d-ecd9-4148-b563-ef6204dd5d0e.mp4

Let me investigate more about it.

akexorcist avatar Dec 07 '21 21:12 akexorcist

This issue was fixed in 1.2.11. Please check it out

akexorcist avatar Dec 21 '21 19:12 akexorcist

i guess u just code locazation,and u just only Override application.getResources but not Override getAssets. why it happen by locazation, we can see the android framewrok : WebViewFactoryProvider.getProvider -> WebViewFactoryProvider.getProviderClass-> AppGlobals.getInitialApplication (the application u config manifest.xml)-> initialApplication.getAssets().addAssetPathAsSharedLibrary (this webview package info add to ).

kenkieo avatar May 05 '22 10:05 kenkieo

Since AndroidX AppCompat has per-app language preferences for backward compatibility. Please migrate this library to AndroidX for more stability, compatibility, and longer support from Google team.

See Migrate to AndroidX guide

Thank you for your support

akexorcist avatar Jun 21 '22 21:06 akexorcist