据我所知,这个问题在这里讨论了很多次,但是在我尝试的时候,我仍然遇到了同样的问题,所有人都尝试了我在这里看到的以及Google所看到的问题,但仍然没有解决这个问题。
另外,我尝试了来自这么多网站的示例代码,也存在同样的问题。(在MapActivity
派生类的问题上,我可以看到grid
,但是在抛出上述异常时地图没有加载)
我尝试使用自己的API key
以及示例代码中已有的密钥。并且,还尝试在设备中保持位置选项启用和禁用两者。
请帮助我。
下面是一个清单文件......
**
<permission
android:name="com.Example.appl.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.Example.appl.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps" />
<activity
android:name="com.Example.appl.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MHomeActivity"></activity>
</application>
**
答案 0 :(得分:1)
最后,在弄乱了两天之后,如果有人请最好的话请给我更新解决方案。
我做了什么,在查看了这么多线程和链接之后,我知道上面的代码/清单没有任何问题,所以我深入研究了Google Map API密钥,下面的解决方案看到了我的方式...(请请注意,我正在通过mac进行开发。
首先我打开终端,然后在那里我访问了Java文件夹并在bin文件夹中,然后在命令下面输入: -
***keytool -list -alias androiddebugkey -keystore \User\.android\debug.keystore -storepass android -keypass android***
请注意上面的命令&#34; \ User.android \ debug.keystore&#34;这是保存android调试密钥的路径,如果你想在eclipse中找到那条路径(可能在你的系统上有所不同),请使用以下命令:
**eclipse->window->preferences->Android->Build**
因此,当您运行上述命令时,您将找到MD5密钥,然后您需要访问以下链接: -
https://developers.google.com/maps/documentation/android/v1/maps-api-signup
在这里,您可以在下面给出上面获得的MD5密钥,它将为您生成api密钥以进行调试。 然后,所有这些都以所需的xml或编码提供此api密钥(取决于您的编码方式)。
但这项规定适用于v1。如果有人找到了v2的方法,请更新此帖子。
答案 1 :(得分:0)
检查是否在Application标签内的android-manifest文件中添加了地图库。
<uses-library android:name="com.google.android.maps" />
答案 2 :(得分:0)
我搜索了你的问题我有解决方案并在下面给出请参考这些......
答案 3 :(得分:0)
阅读并浏览了很多使用API v2的答案,即使您是针对Android 2.2开发的
keytool -list -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android
得到像(SHA1):82:73:C3:82:73:C3:82:73:C3:82:73:C3:82:73:C3:82:73:C3
转到设置为Google Maps Api v2
的服务中的Google Api Console稍后在Api访问部分单击创建新的Android密钥或更新(如果有),放入对话框
82:73:C3:82:73:C3:82:73:C3:82:73:C3:82:73:C3:82:73:C3;COM.PACKAGE.NAME
将google-play-services
添加到您的项目中,转到“资源库”部分中的Project properties -> Android
,然后点击添加并浏览到sdk-android>/extras/google/google_play_services/libproject/google-play-services_lib
。
检查项目依赖项中的android-support-v4.jar
库。
<!--AndroidManifest.xml-->
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<permission android:name="COM.PACKAGE.NAME.permission.MAPS_RECEIVE"></permission>
<uses-permission android:name="COM.PACKAGE.NAME.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--inside <application> tag-->
<meta-data android:value="API_KEY" android:name="com.google.android.maps.v2.API_KEY"/>
在您的Activity类中,您的需求从android.support.v4.app.FragmentActivity
//MainActivity.java
package COM.PACKAGE.NAME;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
最后您需要更改activity_main.xml
<!--./res/layout/activity_main.xml-->
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>