Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图突然不起作用了_Android_Google Maps_Android Studio_Google Maps Android Api 2 - Fatal编程技术网

Android 谷歌地图突然不起作用了

Android 谷歌地图突然不起作用了,android,google-maps,android-studio,google-maps-android-api-2,Android,Google Maps,Android Studio,Google Maps Android Api 2,突然间,“地图”在我的应用程序中停止工作,只在左下角显示一个带有谷歌标志的空白屏幕 我得到的错误是: I/Google Maps Android API﹕ Google Play services package version: 4452038 I/ActivityManager﹕ Start proc com.google.android.gms.maps for service com.google.android.gms/.maps.auth.ApiTokenService: I/Go

突然间,“地图”在我的应用程序中停止工作,只在左下角显示一个带有谷歌标志的空白屏幕

我得到的错误是:

I/Google Maps Android API﹕ Google Play services package version: 4452038
I/ActivityManager﹕ Start proc com.google.android.gms.maps for service com.google.android.gms/.maps.auth.ApiTokenService: 
I/Google Maps Android API﹕ Google Play services client version: 4452000
I/Google Maps Android API﹕ Failed to contact Google servers. Another attempt will be made when connectivity is established.
E/Google Maps Android API﹕ Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
我认为唯一可能的是身份验证错误。因为我在不同的网络上试过,没有遇到任何问题

问题可能出在build.gradle文件上吗?因为问题是在我在那里捣乱之后开始的,我想

这是我的身材gradle:

apply plugin: 'android'

android {
compileSdkVersion 19
buildToolsVersion "19.0.3"

def versionPropsFile = file('version.properties')

if (versionPropsFile.canRead()) {
    def Properties versionProps = new Properties()

    versionProps.load(new FileInputStream(versionPropsFile))

    def value = 0

    def runTasks = gradle.startParameter.taskNames
    if ('assemble' in runTasks || 'assembleRelease' in runTasks || 'aR' in runTasks) {
        value = 1;
    }

    def versionMajor = 1
    def versionMinor = 3
    def versionPatch = versionProps['VERSION_PATCH'].toInteger() + value
    def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1
    def version_Code = versionProps['VERSION_CODE'].toInteger() + value

    versionProps['VERSION_PATCH'] = versionPatch.toString()
    versionProps['VERSION_BUILD'] = versionBuild.toString()
    versionProps['VERSION_CODE'] = version_Code.toString()

    versionProps.store(versionPropsFile.newWriter(), null)

    defaultConfig {
        versionCode version_Code
        versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild})"
        minSdkVersion 14
        targetSdkVersion 19
    }
} else {
    throw new GradleException("Could not read version.properties!")
}

signingConfigs {
    debug {
        storeFile file("xxx.keystore")
        storePassword "xxxx"
        keyAlias "debug"
        keyPassword "xxxx"
    }
    releaseKey {
        storeFile file("xxx.keystore")
        storePassword "xxxx"
        keyAlias "release"
        keyPassword "xxxx"
    }
}

buildTypes {
    debug {
        debuggable true
        packageNameSuffix ".debug"
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        signingConfig signingConfigs.debug
    }

    release {
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        signingConfig signingConfigs.releaseKey
    }
}

lintOptions {
    abortOnError false
}
}

dependencies {
    compile project(':nineOldAndroids')
    compile project(':expListViewLib')
    compile project(':datetimepickerlibrary')
    compile project(':volley')
    compile 'com.android.support:support-v4:+'
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/aws-android-sdk-1.7.1.1.jar')
    compile files('libs/disklrucache-2.0.1.jar')
}
清单如下所示:

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

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

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

<uses-permission android:name="com.example.app.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<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-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.VIBRATE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    ...

    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/config_com.google.android.maps.v2.api_key" />
</application>
</manifest>


我遇到了完全相同的问题,解决方案根本不明显。检查您是否未使用以下选项更改DefaultSSLSocketFactory:

HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());

删除这一行并为所需的连接设置套接字工厂使我的地图工作。

这是否发生在sign(调试和发布)上?@betorcs是的,即使我将调试添加到google api面板中,也无法处理其中任何一个。我在某个地方读到它可能是proguard错误配置的,尝试禁用它
runProguard false
我可以重现此错误。它看起来应用缓存你的api_键,我需要干净的数据或卸载现有的应用,只是覆盖是不够的。我有同样的问题。我完全可以重新开始。这解决了我的问题。非常感谢你!你怎么知道的?几乎是偶然的。在调试和挖掘项目的过程中,我发现了谷歌用于身份验证的https地址,而在该项目中,地图不起作用。我想到了检查连接属性的想法,这是一个很好的尝试。您能提供详细信息吗?代码在哪里?“HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());”它在我的类中负责HTTPS连接。在创建连接套接字之前。请您用代码示例进行更好的解释,以更正此问题?由于我的连接处理,我的映射无法工作,我已经对它进行了测试,但我不知道如何仅为我自己的服务器的连接保留SSL