1

编辑 :

我转移了我的 20 多个尝试使用 Google Maps for Android v2 的项目。在更改键和东西之后,现在它可以工作了。我不知道是什么让这个工作,但谢谢大家。我有一个密钥库,密钥是正确的。我想它以某种方式神奇地修复了。嗯,谢谢各位。

我正在搜索 2 天,但无法解决此问题。我做了一切,但是,这个应用程序不能工作。

我希望我的应用程序可以在 Android 2.2 及更高版本上运行。就像它所说的“如果你在第 8 级创建应用程序,它将支持 95% 的市场”。

这是我的截图和源代码:

我正在粘贴最容易获得的源代码。我从网上拿了这个。

这是命令的输出

keytool -list -keystore <path>
*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                  *
*****************  WARNING WARNING WARNING  *****************

密钥库类型:JKS 密钥库提供者:SUN

Your keystore contains 1 entry

androiddebugkey, 15.Mar.2013, PrivateKeyEntry,
Certificate fingerprint (SHA1): xxx

main.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_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="AIzaSyDim-x5Gxxx"
/>

清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidhive.googlemaps"
    android:versionCode="1"
    android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <!-- Add Google Map Library -->
        <uses-library android:name="com.google.android.maps" />
        <activity
            android:name=".AndroidGoogleMapsActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <!-- Allow to connect with internet -->
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

java文件(不需要全部粘贴,但我想最好全部粘贴)

http://pastebin.com/yF95Rcbd

这是我的截图:

http://i.imgur.com/gExHpUG.png

http://i.imgur.com/AMOXKhr.png

http://i.imgur.com/Aqon97Y.png

我正在尝试将此应用程序编译为 Android 4.2.2,但我尝试并希望使其在 2.2 及更高版本中运行。

这是属性窗口的 Android 选项卡,只是为了确保:

http://i.imgur.com/ht0CQwT.png

这是我的日志

03-20 07:01:20.145: W/System.err(956):  at java.lang.Thread.run(Thread.java:856)
03-20 07:01:20.665: W/System.err(956): IOException processing: 26
03-20 07:01:20.665: W/System.err(956): java.io.IOException: Server returned: 3
03-20 07:01:20.665: W/System.err(956):  at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
03-20 07:01:20.675: W/System.err(956):  at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
03-20 07:01:20.675: W/System.err(956):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
03-20 07:01:20.675: W/System.err(956):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
03-20 07:01:20.675: W/System.err(956):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)

这些行一直在重复。

非常感谢。您的帖子似乎包含未正确格式化为代码的代码”错误让我删除了空白行。抱歉代码混乱。

4

5 回答 5

1

http://i.imgur.com/ht0CQwT.png 查看快照。您没有添加显示 Google Android Map V2 所需的 Google Play 服务库。请下载并添加该库,然后重试。

也请看目标。您的目标是 4.2.2,您正在 2.2 上访问它。将目标更改为 2.2 并使用支持片段。

谢谢,

于 2013-03-20T06:52:02.297 回答
1

我已经解决了这个问题,

  • 打开您的 Google API 控制台
  • 选择 API 访问
  • 从您的 API 密钥编辑允许的 Android 应用程序
  • 用你的包名更改包名
  • 示例:00:06:A5:0E:04:A2:1E:8F:FE:6B:7F:46:23:C3:xx:xx:xx:xx:xx:xx;com.example.androidmapview
于 2013-05-01T07:47:35.347 回答
0

我用这样的放大/缩小按钮解决了我的黑屏问题。(它发生在我更改了我的包名之后)

  1. 删除密钥库文件
  2. 创建一个新的密钥库文件
  3. 获取 SHA1 指纹
  4. 转到 API 控制台
  5. 创建一个新的安卓应用。
  6. 粘贴你的指纹
  7. 在清单文件中使用给定的 API 密钥

这对我有用

于 2013-07-25T13:50:25.007 回答
0

您缺少 API KEY 的权限和元数据。

仔细阅读:https ://developers.google.com/maps/documentation/android/start

于 2013-03-20T07:26:40.323 回答
0

使用 android mapapi v2 ,主要原因是您必须为您的应用添加播放服务,如下所示:

<permission
        android:name="com.example.androidmapview.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.androidmapview.permission.MAPS_RECEIVE" />

在布局中使用片段类:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
 class="com.google.android.gms.maps.SupportMapFragment"/>

并更改您的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidmapview"
    android:versionCode="1"
    android:versionName="1.0" >

   <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

    <permission
        android:name="com.example.androidmapview.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.androidmapview.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.androidmapview.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>
        <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></meta-data>
    </application>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
</manifest>

活动中:

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.google.android.gms.maps.SupportMapFragment;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SupportMapFragment fragment = new SupportMapFragment();
        getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, fragment).commit();
    }
}

有关更多信息,请查看链接,该链接将向您详细解释 api v2

于 2013-03-20T06:59:51.340 回答