【问题标题】:Google map v2 initializing error on secondary dex mechanism android谷歌地图v2在二级dex机制android上初始化错误
【发布时间】:2014-10-06 16:59:27
【问题描述】:

我在初始化地图时遇到错误,当我尝试将地图用作外部库并尝试作为辅助库时,会创建 apk,而当我尝试启动地图时它会崩溃。但是当我在没有 dex 的情况下尝试同样的事情时,它工作得很好(下面是堆栈跟踪)。

我该如何解决这个问题?我面临 65536 限制超出错误。所以,这是创建apk的唯一方法,我正在使用ant。

java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
10-06 22:20:24.374: E/AndroidRuntime(17015):    at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
10-06 22:20:24.374: E/AndroidRuntime(17015):    at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
10-06 22:20:24.374: E/AndroidRuntime(17015):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:291)
10-06 22:20:24.374: E/AndroidRuntime(17015):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)

【问题讨论】:

  • 你在用proguard吗
  • @ashoke 我也尝试过 progaud,同样的问题发生了
  • 嗨,请看这篇文章:stackoverflow.com/a/15894284/4017037
  • 能否在初始化地图时提供布局 XML 和代码?

标签: android google-maps ant


【解决方案1】:

看来您使用的是 google-play-services.jar。 jar 文件不包含某些资源。

将 google-play-services_lib 链接到您的项目。

java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable in android

【讨论】:

  • 不,我正在使用 google play services library 项目,但仍然遇到同样的错误
【解决方案2】:

如果您使用 eclipce,请将您的 SDK 中的 Google Play Services 导入工作区并添加为库。 如果你使用 Android Studio 添加 gradle 作为依赖项。 编译'com.google.android.gms:play-services:6.1.+'

以下是使用 Google Play 服务进行开发的链接: http://developer.android.com/google/play-services/setup.html

您不能将 jar 文件用于 google play 服务。

您可以在 Jake Wharton 的博客中找到有关 64k 限制的更多信息; http://jakewharton.com/play-services-is-a-monolith/

此外,随着 Android 5.0 Lolipop 的发布,谷歌发布了一个 MultiDexApplication 库。你应该试试看。 http://developer.android.com/reference/android/support/multidex/MultiDexApplication.html

注意:使用 API v21,Android 原生支持此功能。

【讨论】:

  • @Aman 你试过新的 MultiDexApplication 库了吗?我更新了答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 2013-02-15
  • 2014-08-11
相关资源
最近更新 更多