【问题标题】:Crash due to MapboxTelemetry (No virtual method initialize)由于 MapboxTelemetry 崩溃(没有虚拟方法初始化)
【发布时间】:2017-11-02 09:18:29
【问题描述】:

在 Mapbox 相关类没有任何更改的情况下,我在运行我的应用程序后立即崩溃。

我不知道是什么原因造成的,也找不到任何回应。

这些是我的 gradle 依赖项:

compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:5.2.0-beta.3@aar'){
    transitive=true
}

compile 'com.mapbox.mapboxsdk:mapbox-android-services:2.3.0-SNAPSHOT'

这是崩溃日志

致命异常:主要 进程:com.example.myapp,PID:16817 java.lang.NoSuchMethodError:没有虚拟方法初始化(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/mapbox/services/android/telemetry/location/LocationEngine;)V 在类 Lcom/mapbox /services/android/telemetry/MapboxTelemetry;或其超类('com.mapbox.services.android.telemetry.MapboxTelemetry' 的声明出现在 /data/app/com.example.myapp-4RgMqGrrEFZc1X5nPn936g==/base.apk:classes84.dex 中) 在 com.mapbox.mapboxsdk.Mapbox.getInstance(Mapbox.java:58) 在 com.example.myapp.App.onCreate(App.java:128) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1118) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5791) 在 android.app.ActivityThread.-wrap1(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) 在 android.os.Handler.dispatchMessage(Handler.java:105) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6541) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

11-02 10:10:35.386 16817-16817/com.example.myapp E/CrashlyticsCore:执行任务失败。 java.util.concurrent.TimeoutException 在 java.util.concurrent.FutureTask.get(FutureTask.java:206) 在 com.crashlytics.android.core.CrashlyticsExecutorServiceWrapper.executeSyncLoggingException(CrashlyticsExecutorServiceWrapper.java:44) 在 com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:251) 在 java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) 在 java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) 在 java.lang.Thread.dispatchUncaughtException(Thread.java:1953)

【问题讨论】:

  • 我尝试用两种不同的方式初始化 Mapbox,结果相同:// MapboxAccountManager.start(this, getString(R.estring.mapbox_access_token)); Mapbox.getInstance(this, getString(R.string.mapbox_access_token));

标签: android mapbox mapbox-android


【解决方案1】:

经过几个小时的挣扎,我发现存在某种依赖冲突。检查 Mapbox.getInstance 方法内部,有一个 LocationEngine 参数传递给 MapboxTelemetry.getInstance,该参数不是从正确的包中获取的。

长话短说,这些是避免这种烦人的崩溃所需的 gradle 依赖项:

compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:5.2.0-beta.3@aar'){
    transitive=true
    exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-services'
}

compile ('com.mapbox.mapboxsdk:mapbox-android-services:2.3.0-SNAPSHOT') {
    exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-sdk'
    exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-telemetry'
}

我希望这对任何人都有帮助!

【讨论】:

    猜你喜欢
    • 2016-10-06
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多