Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HERE SDK v3.5.0_466 java.lang.ClassNotFoundException: Didn't find class "android.webkit.RenderProcessGoneDetail"

Tags:

I am using the latest HERE SDK for this. This occurred before the MapEngine is initilaized. The Map is showing on the screen.

Android SDK Version

  • compileSdkVersion 26
  • buildToolsVersion "26.0.3"
11-16 10:50:00.245 30879-30879  I/cr_LibraryLoader: Expected native library version number "62.0.3202.84", actual native library version number "62.0.3202.84"
11-16 10:50:00.275 30879-30879  I/cr_BrowserStartup: Initializing chromium process, singleProcess=true
11-16 10:50:00.365 30879-30879  I/art: Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.eb>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/RenderProcessGoneDetail;
11-16 10:50:00.365 30879-30879  I/art:     at com.android.webview.chromium.Ap com.android.webview.chromium.WebViewChromiumFactoryProvider.G(android.webkit.WebView, android.content.Context) (WebViewChromiumFactoryProvider.java:323)
11-16 10:50:00.365 30879-30879  I/art:     at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:42)
11-16 10:50:00.365 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
11-16 10:50:00.365 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:572)
11-16 10:50:00.365 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:555)
11-16 10:50:00.365 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:542)
11-16 10:50:00.365 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:532)
11-16 10:50:00.365 30879-30879  I/art:     at void com.here.sdk.analytics.internal.a$2.run() ((null):-1)
11-16 10:50:00.365 30879-30879  I/art:     at java.lang.String com.here.sdk.analytics.internal.a.getBrowserUserAgent() ((null):-1)
11-16 10:50:00.365 30879-30879  I/art:     at com.here.sdk.analytics.internal.Analytics com.here.sdk.analytics.internal.Analytics.create(com.here.sdk.analytics.internal.PlatformCalls, com.here.sdk.analytics.internal.AnalyticsConfiguration) ((null):-2)
11-16 10:50:00.365 30879-30879  I/art:     at void com.here.sdk.analytics.HEREAnalytics.<init>(android.app.Application, com.here.sdk.analytics.HEREAnalyticsConfiguration) ((null):-1)
11-16 10:50:00.365 30879-30879  I/art:     at void com.here.sdk.analytics.HEREAnalytics.setup(android.app.Application, com.here.sdk.analytics.HEREAnalyticsConfiguration) ((null):-1)
11-16 10:50:00.365 30879-30879  I/art:     at void com.here.sdk.hacwrapper.HacAnalytics.initialize(com.here.sdk.hacwrapper.HacSettings) (HacAnalytics.java:58)
11-16 10:50:00.365 30879-30879  I/art:     at void com.nokia.maps.s.a(android.content.Context, boolean) (AnalyticsTrackerExternal.java:419)
11-16 10:50:00.365 30879-30879  I/art:     at void com.nokia.maps.n.a(android.content.Context, boolean) (Analytics.java:38)
11-16 10:50:00.365 30879-30879  I/art:     at void com.nokia.maps.MapsEngine$h.a(com.here.android.mpa.common.OnEngineInitListener$Error) (MapsEngine.java:943)
11-16 10:50:00.365 30879-30879  I/art:     at void com.nokia.maps.MapsEngine$h.onPostExecute(java.lang.Object) (MapsEngine.java:717)
11-16 10:50:00.365 30879-30879  I/art:     at void android.os.AsyncTask.finish(java.lang.Object) (AsyncTask.java:660)
11-16 10:50:00.365 30879-30879  I/art:     at void android.os.AsyncTask.-wrap1(android.os.AsyncTask, java.lang.Object) (AsyncTask.java:-1)
11-16 10:50:00.365 30879-30879  I/art:     at void android.os.AsyncTask$InternalHandler.handleMessage(android.os.Message) (AsyncTask.java:677)
11-16 10:50:00.365 30879-30879  I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-16 10:50:00.365 30879-30879  I/art:     at void android.os.Looper.loop() (Looper.java:154)
11-16 10:50:00.366 30879-30879  I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6688)
11-16 10:50:00.366 30879-30879  I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-16 10:50:00.366 30879-30879  I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1468)
11-16 10:50:00.366 30879-30879  I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1358)
11-16 10:50:00.366 30879-30879  I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.RenderProcessGoneDetail" on path: DexPathList[[zip file "/data/app/com.android.chrome-1/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-1/lib/arm, /data/app/com.android.chrome-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
11-16 10:50:00.366 30879-30879  I/art:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
11-16 10:50:00.366 30879-30879  I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
11-16 10:50:00.366 30879-30879  I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
11-16 10:50:00.366 30879-30879  I/art:     at com.android.webview.chromium.Ap com.android.webview.chromium.WebViewChromiumFactoryProvider.G(android.webkit.WebView, android.content.Context) (WebViewChromiumFactoryProvider.java:323)
11-16 10:50:00.366 30879-30879  I/art:     at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:42)
11-16 10:50:00.366 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
11-16 10:50:00.366 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:572)
11-16 10:50:00.366 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:555)
11-16 10:50:00.366 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:542)
11-16 10:50:00.366 30879-30879  I/art:     at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:532)
11-16 10:50:00.366 30879-30879  I/art:     at void com.here.sdk.analytics.internal.a$2.run() ((null):-1)
11-16 10:50:00.366 30879-30879  I/art:     at java.lang.String com.here.sdk.analytics.internal.a.getBrowserUserAgent() ((null):-1)
11-16 10:50:00.366 30879-30879  I/art:     at com.here.sdk.analytics.internal.Analytics com.here.sdk.analytics.internal.Analytics.create(com.here.sdk.analytics.internal.PlatformCalls, com.here.sdk.analytics.internal.AnalyticsConfiguration) ((null):-2)
11-16 10:50:00.366 30879-30879  I/art:     at void com.here.sdk.analytics.HEREAnalytics.<init>(android.app.Application, com.here.sdk.analytics.HEREAnalyticsConfiguration) ((null):-1)
11-16 10:50:00.366 30879-30879  I/art:     at void com.here.sdk.analytics.HEREAnalytics.setup(android.app.Application, com.here.sdk.analytics.HEREAnalyticsConfiguration) ((null):-1)
11-16 10:50:00.366 30879-30879  I/art:     at void com.here.sdk.hacwrapper.HacAnalytics.initialize(com.here.sdk.hacwrapper.HacSettings) (HacAnalytics.java:58)
11-16 10:50:00.366 30879-30879  I/art:     at void com.nokia.maps.s.a(android.content.Context, boolean) (AnalyticsTrackerExternal.java:419)
11-16 10:50:00.366 30879-30879  I/art:     at void com.nokia.maps.n.a(android.content.Context, boolean) (Analytics.java:38)
11-16 10:50:00.366 30879-30879  I/art:     at void com.nokia.maps.MapsEngine$h.a(com.here.android.mpa.common.OnEngineInitListener$Error) (MapsEngine.java:943)
11-16 10:50:00.366 30879-30879  I/art:     at void com.nokia.maps.MapsEngine$h.onPostExecute(java.lang.Object) (MapsEngine.java:717)
11-16 10:50:00.366 30879-30879  I/art:     at void android.os.AsyncTask.finish(java.lang.Object) (AsyncTask.java:660)
11-16 10:50:00.366 30879-30879  I/art:     at void android.os.AsyncTask.-wrap1(android.os.AsyncTask, java.lang.Object) (AsyncTask.java:-1)
11-16 10:50:00.366 30879-30879  I/art:     at void android.os.AsyncTask$InternalHandler.handleMessage(android.os.Message) (AsyncTask.java:677)
11-16 10:50:00.366 30879-30879  I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-16 10:50:00.366 30879-30879  I/art:     at void android.os.Looper.loop() (Looper.java:154)
11-16 10:50:00.366 30879-30879  I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6688)
11-16 10:50:00.366 30879-30879  I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-16 10:50:00.366 30879-30879  I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1468)
11-16 10:50:00.366 30879-30879  I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1358)
like image 503
neilQ5 Avatar asked Nov 16 '17 17:11

neilQ5


2 Answers

Looks like this is Google's problem: https://groups.google.com/a/chromium.org/forum/#!topic/android-webview-dev/m0EtO3IXNn0

like image 164
Vincent Avatar answered Sep 21 '22 12:09

Vincent


On N+ new ART logging appears to have been introduced letting app developers know about certain binary compatibility problems in their code. Unfortunately, this is triggering for some of the API-level guarded code in WebView.

One example is "Failed resolution of: Landroid/webkit/RenderProcessGoneDetail;", which is triggered whenever a recent version of WebView with O features is used on an N device. This is harmless, but confusing and spammy to developers looking at logcat.

The issue is the structure of the code in WebViewContentsClientAdapter:

@Override
@TargetApi(Build.VERSION_CODES.O)
public boolean onRenderProcessGone(final AwRenderProcessGoneDetail detail) {
    // WebViewClient.onRenderProcessGone was added in O.
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return false;

    try {
        TraceEvent.begin("WebViewContentsClientAdapter.onRenderProcessGone");
        return mWebViewClient.onRenderProcessGone(mWebView, new RenderProcessGoneDetail() {
            @Override
            public boolean didCrash() {
                return detail.didCrash();
            }

            @Override
            public int rendererPriorityAtExit() {
                return detail.rendererPriority();
            }
        });
    } finally {
        TraceEvent.end("WebViewContentsClientAdapter.onRenderProcessGone");
    }
}

This method early-outs on pre-O devices, which is why no actual crash occurs. However, because this function creates an instance of an anonymous inner class whose parent class is RenderProcessGoneDetail (which only exists on O+), class verification of WebViewContentsClientAdapter attempts to load RenderProcessGoneDetail and fails.

track this Android bug here

like image 31
Arpit J. Avatar answered Sep 19 '22 12:09

Arpit J.