【问题标题】:Yandex MapKit 3.0 CrashYandex MapKit 3.0 崩溃
【发布时间】:2019-02-18 00:13:55
【问题描述】:

Yandex MapKit 在MapKitFactory.initialize(this) 行崩溃

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    MapKitFactory.setApiKey(YANDEX_MAP_KEY)
    MapKitFactory.initialize(this)
    setContentView(R.layout.advert_activity)
}

堆栈跟踪是

java.lang.UnsatisfiedLinkError:dlopen 失败: “/data/data/com.appname.app/app_lib/libgnustl_shared.so”是 32 位的 而不是 64 位 在 java.lang.Runtime.load0(Runtime.java:928) 在 java.lang.System.load(System.java:1621) 在 com.yandex.runtime.internal.ReLinker.loadLibrary(ReLinker.java:82) 在 com.yandex.runtime.Runtime.loadLibrary(Runtime.java:122) 在 com.yandex.runtime.Runtime.init(Runtime.java:99) 在 com.yandex.mapkit.MapKitFactory.initialize(MapKitFactory.java:18) 在 com.appname.main.MainActivity.onCreate(MainActivity.kt:41) 在 android.app.Activity.performCreate(Activity.java:7023) 在 android.app.Activity.performCreate(Activity.java:7014) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870) 在 android.app.ActivityThread.-wrap11(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:172) 在 android.app.ActivityThread.main(ActivityThread.java:6590) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

【问题讨论】:

    标签: android yandex-maps yandex-mapkit


    【解决方案1】:

    看这个问题https://github.com/yandex/mapkit-android-demo/issues/4/。 MapKit 3.0 没有 armv8。

    【讨论】:

      【解决方案2】:

      我已经尝试了所有方法,但只有那个解决方案有效:

      将此行添加到项目的build.gradle

      android {
          defaultConfig {
              ndk {
                  abiFilters "armeabi-v7a", "x86", 'armeabi', 'arm64-v8a'
              }
      
              packagingOptions {
                  exclude '/lib/mips64/**'
                  exclude '/lib/arm64-v8a/**'
                  exclude '/lib/x86_64/**'
              }
          }
      }
      

      【讨论】:

      • 投反对票,因为它应该是armeabi(.so 位置和abiFilters),以便在两种架构上加载 32 位库。过滤然后排除有点毫无意义。就像发布后立即回答自己的问题一样,似乎是捏造的内容。
      猜你喜欢
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多