Android 我的应用程序don´;无法在我的设备上显示地图

Android 我的应用程序don´;无法在我的设备上显示地图,android,google-maps,Android,Google Maps,在过去的3天里,我一直在寻找解决方案,但我找不到解决问题的方法。 当我使用google maps api v2在我的设备上运行我的应用程序时,会显示一条消息,说明我必须更新google服务。我遵循谷歌开发者的每一个步骤,还有另一个教程,什么都没有。这里是我的代码和日志猫。。。如果有人能解决这个问题,请帮助我 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />

在过去的3天里,我一直在寻找解决方案,但我找不到解决问题的方法。 当我使用google maps api v2在我的设备上运行我的应用程序时,会显示一条消息,说明我必须更新google服务。我遵循谷歌开发者的每一个步骤,还有另一个教程,什么都没有。这里是我的代码和日志猫。。。如果有人能解决这个问题,请帮助我

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

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>
清单xml:

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

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

<uses-permission android:name="com.example.maps2.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.maps2.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="AIzaSyDJWkuzL3moJzGH4JcLJXQa9_q1vG7Q3Xc"/>

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
</application>
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>
日志:

    11-04 16:13:21.921: E/Trace(27005): error opening trace file: No such file or directory (2)
11-04 16:13:22.761: I/dalvikvm(27005): Could not find method android.os.UserManager.getApplicationRestrictions, referenced from method xg.b
11-04 16:13:22.761: W/dalvikvm(27005): VFY: unable to resolve virtual method 3765: Landroid/os/UserManager;.getApplicationRestrictions (Ljava/lang/String;)Landroid/os/Bundle;
11-04 16:13:22.761: D/dalvikvm(27005): VFY: replacing opcode 0x6e at 0x0012
11-04 16:13:22.761: I/dalvikvm(27005): Could not find method android.accounts.AccountManager.getAccountsByTypeForPackage, referenced from method xg.c
11-04 16:13:22.761: W/dalvikvm(27005): VFY: unable to resolve virtual method 2421: Landroid/accounts/AccountManager;.getAccountsByTypeForPackage (Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
11-04 16:13:22.761: D/dalvikvm(27005): VFY: replacing opcode 0x6e at 0x000c
11-04 16:13:23.762: I/PeopleDatabaseHelper(27005): cleanUpNonGplusAccounts done.
11-04 16:13:24.253: D/dalvikvm(27005): Trying to load lib /data/app-lib/com.google.android.gms-1/libAppDataSearch.so 0x40d82670
11-04 16:13:24.263: D/dalvikvm(27005): Added shared lib /data/app-lib/com.google.android.gms-1/libAppDataSearch.so 0x40d82670
11-04 16:13:24.263: D/dalvikvm(27005): No JNI_OnLoad found in /data/app-lib/com.google.android.gms-1/libAppDataSearch.so 0x40d82670, skipping init
11-04 16:13:24.263: D/Icing(27005): Init last flush num docs 159 last docstore size 41216
11-04 16:13:24.273: D/Icing(27005): Docid map file has data, scanning...
11-04 16:13:24.283: D/Icing(27005): Scanning /data/data/com.google.android.gms/files/AppDataSearch/main/cur/ds.docids found 160 documents, last docstore location 41216
11-04 16:13:24.283: D/Icing(27005): File /data/data/com.google.android.gms/files/AppDataSearch/main/cur/ds.perdocdata contains 160 records of size 6
11-04 16:13:24.323: D/Icing(27005): Corpus scoring data inited successfully num corpora 2
11-04 16:13:24.323: D/Icing(27005): Init docstore ok num docs 160 bytes 41472
11-04 16:13:25.434: V/Icing(27005): Lite index crc computed in 0.092ms
11-04 16:13:25.434: V/Icing(27005): Lite index init ok in 122.498ms
11-04 16:13:25.434: D/Icing(27005): Lite index recovered docid (158, 159]
11-04 16:13:25.434: V/Icing(27005): Warming lite-index took 0.031ms
11-04 16:13:25.434: V/Icing(27005): Warming lexicon took 0.122ms
11-04 16:13:25.434: V/Icing(27005): Warming display mappings took 0.031ms
11-04 16:13:25.434: D/Icing(27005): Init index ok num docs 160
11-04 16:13:25.434: D/Icing(27005): Init done
11-04 16:13:33.322: E/Trace(27293): error opening trace file: No such file or directory (2)
11-04 16:13:33.582: D/PackageAddedReceiver(27293): package added com.example.maps2
11-04 16:13:34.633: I/dalvikvm(27293): Could not find method android.os.UserManager.getApplicationRestrictions, referenced from method xg.b
11-04 16:13:34.633: W/dalvikvm(27293): VFY: unable to resolve virtual method 3765: Landroid/os/UserManager;.getApplicationRestrictions (Ljava/lang/String;)Landroid/os/Bundle;
11-04 16:13:34.633: D/dalvikvm(27293): VFY: replacing opcode 0x6e at 0x0012
11-04 16:13:34.743: I/dalvikvm(27293): Could not find method android.accounts.AccountManager.getAccountsByTypeForPackage, referenced from method xg.c
11-04 16:13:34.743: W/dalvikvm(27293): VFY: unable to resolve virtual method 2421: Landroid/accounts/AccountManager;.getAccountsByTypeForPackage (Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
11-04 16:13:34.743: D/dalvikvm(27293): VFY: replacing opcode 0x6e at 0x000c
11-04 16:13:35.554: I/PeopleDatabaseHelper(27293): cleanUpNonGplusAccounts done.
11-04 16:13:36.565: D/dalvikvm(27293): Trying to load lib /data/app-lib/com.google.android.gms-1/libAppDataSearch.so 0x40d851d8
11-04 16:13:36.965: D/dalvikvm(27293): Added shared lib /data/app-lib/com.google.android.gms-1/libAppDataSearch.so 0x40d851d8
11-04 16:13:36.965: D/dalvikvm(27293): No JNI_OnLoad found in /data/app-lib/com.google.android.gms-1/libAppDataSearch.so 0x40d851d8, skipping init
11-04 16:13:36.965: D/Icing(27293): Init last flush num docs 159 last docstore size 41216
11-04 16:13:36.965: D/Icing(27293): Docid map file has data, scanning...
11-04 16:13:36.975: D/Icing(27293): Scanning /data/data/com.google.android.gms/files/AppDataSearch/main/cur/ds.docids found 160 documents, last docstore location 41216
11-04 16:13:36.975: D/Icing(27293): File /data/data/com.google.android.gms/files/AppDataSearch/main/cur/ds.perdocdata contains 160 records of size 6
11-04 16:13:37.025: D/Icing(27293): Corpus scoring data inited successfully num corpora 2
11-04 16:13:37.025: D/Icing(27293): Init docstore ok num docs 160 bytes 41472
11-04 16:13:37.596: I/Recovery(27293): Received: Intent { act=com.google.android.gms.INITIALIZE flg=0x10 pkg=com.google.android.gms cmp=com.google.android.gms/.auth.be.recovery.AccountRecoveryBackgroundService$Receiver }
11-04 16:13:38.457: I/Recovery(27293): Received: Intent { act=com.google.android.gms.INITIALIZE flg=0x10 pkg=com.google.android.gms cmp=com.google.android.gms/.auth.be.recovery.AccountRecoveryBackgroundService$Receiver }
11-04 16:13:38.717: V/Icing(27293): Lite index crc computed in 0.122ms
11-04 16:13:38.727: V/Icing(27293): Lite index init ok in 152.679ms
11-04 16:13:38.727: D/Icing(27293): Lite index recovered docid (158, 159]
11-04 16:13:38.727: V/Icing(27293): Warming lite-index took 0.031ms
11-04 16:13:38.737: V/Icing(27293): Warming lexicon took 6.592ms
11-04 16:13:38.747: V/Icing(27293): Warming display mappings took 7.050ms
11-04 16:13:38.747: D/Icing(27293): Init index ok num docs 160
11-04 16:13:38.747: D/Icing(27293): Init done
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>

请在您的设备上测试应用程序,并告诉我此消息是否出现在您的设备上。

您是否正在调用不可用的方法?您的跟踪显示“找不到方法android.os.UserManager.getApplicationRestrictions,引用自方法xg.b”

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

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>

我们可以在文档中看到,该方法可从API lvl 18获得,并且由于您试图在4.2.2设备(API级别17)上运行该方法,这可能是崩溃的原因…

请参见此处,只需使用清单文件中的密钥更改API密钥,然后执行以下步骤:
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>
并确保您的google_play_services_lib项目只出现在项目的工作空间中

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

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>
清单文件:

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

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>
activity_main.xml:

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

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>
    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:name="com.google.android.gms.maps.MapFragment"/>


收到此消息后,请告诉我。

您是否在真实设备或模拟器上尝试过此功能?如果是真正的设备,它是否运行Android 2.2(或更高版本)并安装了Google Play Store?如果是emulator,它是否运行带有Google API的Android 4.2.2?Google服务由Google Play应用程序处理。问题就在那里,而不是你的应用程序。确保您的设备上的Google Play应用程序是最新的。我使用一个真实的设备,目标是4.2.2,我在另一个设备中尝试,并显示相同的消息。但我在我的项目中不使用这种方法:如果我在没有此“”的情况下运行你的代码,请给我一个错误,应用程序不会启动。如果我将此元数据放入应用程序运行清单中,但在我的设备上显示相同的消息“在更新google play服务之前,此应用程序不会运行”。我对你是否使用你的sha-1+包名创建了你自己的地图API密钥感到失望,这是通过访问谷歌API控制台在android清单文件中提到的?是的,我做了,我也在sdk中更新了谷歌播放服务,我将谷歌播放服务库导入到我的工作区,并将这个库添加到我的项目中…你放在哪个代码中“我找到了解决办法。。。我必须清除设备上google play store的缓存和数据。在这次更新之后,我的设备上的google play服务开始工作了。
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geeklabs.map.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="replace with your API key"/>

    </application>

</manifest>