我刚刚将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类。
我们发现问题是由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'