膨胀类 com.google.android.maps.MapView 时出错
Posted
技术标签:
【中文标题】膨胀类 com.google.android.maps.MapView 时出错【英文标题】:Error Inflating class com.google.android.maps.MapView 【发布时间】:2011-09-26 13:30:01 【问题描述】:我只是在学习一个简单的地图教程http://developer.android.com/resources/tutorials/views/hello-mapview.html,但遇到了这个错误。我是 android 新手,我试图遵循互联网上提供的所有解决方案,但还没有成功。请帮我。我的主要 .xml 在下面
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_
android:layout_
android:clickable="true"
android:apiKey="***"
/>
清单文件就是这个
【问题讨论】:
主文件和清单文件在哪里? 你到底遇到了什么错误? 清楚地解释错误信息,以便人们可以帮助您 请选择答案 【参考方案1】:我遇到了这个问题,通过以下两个步骤解决了:
1) 将以下行放入 AndroidManifest.xml 文件的 application(重要)元素中。
<uses-library android:name="com.google.android.maps" />
2) 扩展 MapActivity 而不是 Activity。
享受吧!
【讨论】:
愚蠢的我忘了扩展 mapactivity 注意:MapActivity 已被弃用。现在,我们需要使用 MapFragment(或 SupportMapFragment)。【参考方案2】:您是否将主类扩展为 MapActivity?
public class a extends MapActivity
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
@Override
protected boolean isRouteDisplayed()
// TODO Auto-generated method stub
return false;
【讨论】:
【参考方案3】:我遇到了同样的问题,我搜索了大约 3 个小时来解决它, 都在清单中。
1) 在我的清单中,这段代码不在正确的位置
<uses-library android:name="com.google.android.maps" />
它应该在这里,在下面
<application>
喜欢这个
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.package.name">
...
<application android:name="MyApplication" >
<uses-library android:name="com.google.android.maps" />
...
</application>
...
</manifest>
2) 我在清单的某处丢失了一个句号
<activity
android:name="MyClass" //*****should be android:name=".MyClass"***
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MyClass />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
3) 我没有指定
下的最小 sdk 版本 <manifest>
代码:
<uses-sdk android:minSdkVersion="7" />
4) 要让地图在调试模式下通过 Eclipse 工作,请在您的 cmd 或终端 http://www.buzztouch.com/resources/Obtaining_a_Google_Maps_API_Key_v1.0.pdf 中按照这些说明操作
我希望这对某人有所帮助
【讨论】:
【参考方案4】:我遇到了问题。只需扩展 MapActivity 而不是 Activity。
【讨论】:
【参考方案5】:您运行应用程序的模拟器没有 google map jar。所以从 Google API 创建模拟器,在那里运行你的应用程序。
查看图片以使用 Google API 创建模拟器
【讨论】:
【参考方案6】:在 MapView 的 xml 声明中插入此内容
xmlns:android="http://schemas.android.com/apk/res/android"
【讨论】:
【参考方案7】:除了使用标签之外,还可以使用谷歌地图
<uses-library android:name="com.google.android.maps" />
在标签中,使用另一个标签
<uses-permission android:name="android.permission.INTERNET"/>
在标签里面你就完成了。
但请记住,您应该在兼容 Google Inc. API 但不兼容 Android API 的 AVD 中运行此应用程序。
另一件重要的事情是,请确保您使用的是 MD5 API 密钥,而不是 SHA1 或任何其他协议 API 密钥。
【讨论】:
【参考方案8】:我知道以下不是原始提问者的错误 - 但由于我的问题导致了相同的错误消息,我想我不妨添加它以防将来有人遇到它。
我检查了所有其他好的提示,但我的项目中没有一个缺失。
最终为我解决了这个问题的是,我忘记在布局中声明 MapView,包括完整的包名。 Eclipse 和 Lint 都没有告诉我这个:
<com.google.android.maps.MapView
...
/>
【讨论】:
你的帖子对我帮助很大,非常感谢【参考方案9】:即使遵循上述所有步骤但未为 MapView 指定 api-key,也会出现此异常。只需添加api-key which you got from google
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_
android:layout_
android:clickable="true"
android:apiKey = "api-key_goes_here"
>
【讨论】:
以上是关于膨胀类 com.google.android.maps.MapView 时出错的主要内容,如果未能解决你的问题,请参考以下文章
膨胀类 CollapsingToolbarLayout 时出错
如何为android修复“错误膨胀类GeckoEngineView”