【问题标题】:java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable only when a maps fragment is present in the layout filejava.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 仅当布局文件中存在地图片段时
【发布时间】:2013-06-27 08:24:52
【问题描述】:

只有当我的布局文件包含如下指定的地图片段(如android v2 api docs 中所述)时,我会收到此错误,包括变体,即。在 android:name 属性等中指定类名。

<fragment
android:id="@+id/places_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>

但是当我以编程方式添加片段时,我没有收到此错误,即。当我在代码中创建 SupportMapFragment 对象并将其添加到布局文件中的“片段容器”元素时。

事实上,它在以编程方式添加时可以正常工作,这使我排除了大多数建议的 SO 解决方案中所建议的“构建路径”错误 - 而且我还一次又一次地仔细遵循了这些步骤,即。将 google play 服务添加为项目,在 Properties -> Android -> Project 中指定它(我有一个绿色勾号)并将 google play 服务添加为 jar 等。

有人遇到过这个问题吗?特别是“以编程方式添加时工作”和“作为布局文件中的片段元素添加时不工作”问题?

问候

【问题讨论】:

  • 对于在布局中添加地图片段的情况,希望您使用以下代码 'GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap() ;'创建一个谷歌地图对象,此代码应在 onResume() 内部或之后
  • 是的,我正在这样做。但是,当调用 setContentView(layout) 方法时会发生错误,因为布局文件包含地图片段。
  • 同样的事情发生在我身上。你修了吗?我正在使用安卓工作室。我尝试了一切都没有运气。编译时没有错误。

标签: android google-maps-android-api-2 android-maps-v2


【解决方案1】:

我遇到了同样的问题,经过多次来回编译后,我编译了 google_play_services 模块,突然间一切正常。试试看,让我知道它是否有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多