当布局文件中存在地图片段时,出现java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable错误。

3

只有当我的布局文件包含像下面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()内部或之后。 - tony m
是的,我正在做这件事。但是当调用setContentView(layout)方法时会出现错误,因为布局文件包含地图片段。 - 371c
1
我也遇到了同样的问题。你解决了吗?我正在使用Android Studio。我尝试了所有方法,但都没有成功。编译时没有错误提示。 - Mitch Bukaner
1个回答

0

我曾遇到相同的问题,在反复尝试后,我编译了google_play_services模块,突然所有东西都能正常工作了。请尝试并告诉我是否奏效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接