谷歌播放服务升级后的空白屏幕

时间:2016-09-27 15:58:29

标签: android google-play-services

我的应用程序在com.google.android.gms版本上使用谷歌地图2年:play-services:5.0.89。当我尝试升级时,应用程序将不显示任何GUI,只显示空白屏幕。

可能与here的问题相同,但没有解决方案,但降级。

我试过了

compile 'com.google.android.gms:play-services:9.6.0'

也只是子集,因为我不使用其他服务

compile 'com.google.android.gms:play-services-maps:9.6.0'
compile 'com.google.android.gms:play-services-analytics:9.6.0'

这是完整的gradle脚本

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "cz.benhur.vfrdroid"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 12
        versionName "1.12"

        // http://developer.android.com/tools/building/multidex.html
        //multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
    }

    compileOptions {
//        sourceCompatibility JavaVersion.VERSION_1_7
//        targetCompatibility JavaVersion.VERSION_1_7
    }

    testOptions {
        unitTests.returnDefaultValues = true
    }
}

dependencies {
    //compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:support-v13:23.4.0'
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.google.android.gms:play-services-maps:9.6.0'
    compile 'com.google.android.gms:play-services-analytics:9.6.0'

    // MPAndroidChart, geodesy: apache2 license
    compile 'com.dropbox.core:dropbox-core-sdk:2.1.1'
    compile 'com.github.PhilJay:MPAndroidChart:v2.2.2'
    compile 'org.gavaghan:geodesy:1.1.3'

    //testCompile 'junit:junit:4.12'
}

1 个答案:

答案 0 :(得分:0)

花了两天时间将我的代码一块一块地复制粘贴到新项目中,我发现了问题:

  1. 我的应用有2个地图片段。我曾经在setUpMapIfNeeded()中对每个调用getMap()。我必须更新到getMapAsync()。
  2. 从onCreate()和onResume()调用setUpMapIfNeeded()。这可能是2年前由Android Studio生成的。
  3. 如果我删除第二个setUpMapIfNeeded()(或第二个getMapAsync()),一切正常。