java.lang.VerifyError: Verifier rejected class com.here.sdk.hacwrapper.HacUtils

java.lang.VerifyError: Verifier rejected class com.here.sdk.hacwrapper.HacUtils

我刚刚将我的 HERE Android SDK Premium 升级到 3.12,它在启动时一直崩溃,出现以下异常:

    --------- beginning of crash
2019-07-25 13:07:46.822 13396-13396/com.here.rcp.htcontrol E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.here.rcp.htcontrol, PID: 13396
    java.lang.VerifyError: Verifier rejected class com.here.sdk.hacwrapper.HacUtils: com.here.sdk.hacwrapper.HacUtils$LegacyIds com.here.sdk.hacwrapper.HacUtils.fetchLegacyIds(android.content.Context, java.lang.String) failed to verify: com.here.sdk.hacwrapper.HacUtils$LegacyIds com.here.sdk.hacwrapper.HacUtils.fetchLegacyIds(android.content.Context, java.lang.String): [0x31] 'this' arg must be initialized (declaration of 'com.here.sdk.hacwrapper.HacUtils' appears in /data/app/com.here.rcp.htcontrol-1/split_lib_dependencies_apk.apk:classes2.dex)
        at com.here.sdk.hacwrapper.HacUtils.fetchLegacyIds(HacUtils.java:1)
        at com.here.sdk.hacwrapper.HacAnalytics.initialize(HacAnalytics.java:4)
        at com.nokia.maps.Vb.a(AnalyticsTrackerExternal.java:32)
        at com.nokia.maps._a.a(Analytics.java:5)
        at com.nokia.maps.MapsEngine$h.a(MapsEngine.java:89)
        at com.nokia.maps.MapsEngine$h.onPostExecute(MapsEngine.java:1)
        at android.os.AsyncTask.finish(AsyncTask.java:660)
        at android.os.AsyncTask.-wrap1(AsyncTask.java)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:677)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6780)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
        Suppressed: java.lang.Throwable: HERE SDK Version: 3.12.4.93
        at com.nokia.maps.MapsEngine$l.uncaughtException(MapsEngine.java:4)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)

凭据和包仍然相同。

我已经将旧的 MapFragment 更改为更新的 SupportMapFragment class。

我们发现我们的问题是由 New Relic gradle 插件引起的,该插件确实将一些代码插入已编译的 类。不使用 New Relic gradle 插件时,一切正常。

我们基本去掉了:

classpath "com.newrelic.agent.android:agent-gradle-plugin:5.18.1"

从根gradle.

因此我们停止使用 New Relic 代理:

implementation 'com.newrelic.agent.android:android-agent:5.18.1'

更新到 newrelic android-代理版本 5.24+ 应该也能解决这个问题。

这里也一样。我不得不从项目中禁用新遗物以消除此错误。我正在使用新的遗物版本 5.19.1