-1

我正在嘗試獲取谷歌地圖在我的簽名發佈版本。它不顯示任何網格線或瓷磚,它只是空白我的用戶界面顯示在頂部。地圖加載完成調試版本爲什麼android地圖是空白的? (沒有瓷磚)

當我使用新手機(4.4.2 vs 4.4.4)時,Android studio monitor(logcat)也停止工作,所以我無法過濾信息。

  • 我重新啓動我的電腦
  • 我已經添加了API密鑰的AndroidManifest.xml
  • 我已經試過創建新的密鑰/密鑰庫 3次
  • 我已經更新SHA1 /每次在Google Developer控制檯(console.developers.google.com)中的包名稱
  • 我試過在控制檯中重新生成API密鑰

(當我刪除從控制檯只緩存的地圖將加載調試憑據,所以我知道控制檯響應)

的build.gradle(項目)

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.3.0' 
    } 
    } 
allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

gradle這個。建(APP)

 apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 
    signingConfigs { 
     release { 
      storeFile new File(project.projectDir, 'mykeystore.keystore') 
      storePassword 'pass' 
      keyAlias 'mykey' 
      keyPassword 'pass' 
     } 
    } 
    defaultConfig { 
     applicationId "apps.baconcheesegames.com.real_timesocialrunnerfinder" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      signingConfig signingConfigs.release 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.0' 
    compile 'com.google.android.gms:play-services:8.1.0' 
    compile 'com.google.android.gms:play-services-ads:8.1.0' 
    compile 'com.google.android.gms:play-services-identity:8.1.0' 
    compile 'com.google.android.gms:play-services-gcm:8.1.0' 
} 

Suspicious message: LocationConsent failed, ULR opt-in status is: false

Blank map when running release build

+1

請發表您的'build.gradle'作爲其可能的簽名或包的名稱問題。當它嘗試加載時,'logcat'會說什麼? – JBirdVegas

+0

好的,我發佈了它。 自從我開始使用新手機後,Android studio logcat不再輸出任何消息。我在同一天早些時候與其他手機工作。 – baconcheese113

+0

@JBirdVegas中的build.gradle包名包名在控制檯相匹配 – baconcheese113

回答

1

所有的答案是合法的,但我的問題是由於沒有把在發佈google_maps_api.xml文件中的API密鑰。只需在調試文件。

Maybe you have two google_maps_api.xml files, one in the app/src/debug/res/values folder and the other in the app/src/release/res/values folder, but only the debug one contains your API key.

https://stackoverflow.com/a/32170277/1363772

1

這是谷歌地圖的關鍵問題。所以能夠爲Android。對於refedrence使用this谷歌地圖API,並提到以下清單文件meta標籤

<meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="key" /> 
    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
+0

讓我知道如果面對任何問題 –

+0

:???:?W /(?):android.view.InflateException:通過引起二進制XML文件我得到這個錯誤:java.lang.RuntimeException:API密鑰只能被指定一次。建議您使用名稱的元數據標籤:com.google.android.geo.API_KEY在AndroidManifest.xml – baconcheese113

+0

元素我換成「geo.API_KEY」與「maps.v2.API_KEY」並沒有什麼改變。地圖仍然是空白的。 – baconcheese113

0

調試SHA-1證書,指紋會從生產不同(簽字)SHA-1證書指紋,所以你需要爲同一個包設置調試SHA-1指紋和生產(簽名)密鑰庫SHA-1指紋。

爲了讓你可以使用下面的命令

keytool -list -v -keystore mystore.keystore 

去你的密鑰存儲從終端的位置,並與您生成的密鑰庫替換mystore.keystore密鑰庫SHA-1指紋。並在谷歌開發人員控制檯中設置生產(簽名)keystore SHA-1指紋爲相同包裝

+0

這就是我提到的我做了3次以上,每次創建一個新的密鑰/ keystore – baconcheese113

1

您需要明確設置debugrelease版本的密鑰庫。然後,您需要確保Google apis預計該密鑰庫的SHA-1指紋。

signingConfigs { 
    release { 
     storeFile new File(project.projectDir, 'my_key.keystore') 
     storePassword 'myKeystorePassword' 
     keyAlias 'myAlias' 
     keyPassword 'myPassword' 
    } 
} 

defaultConfig { 
} 

buildTypes { 
    release { 
     signingConfig signingConfigs.release 
    } 
    debug { 
     signingConfig signingConfigs.release 
    } 
} 
+0

應該在build.gradle(project)還是build.gradle(app)? – baconcheese113

+0

@ baconcheese113,這將在你的'app/build.gradle'中 – JBirdVegas

+0

好吧,我試着添加它。對於我的發佈版本,它仍然是空白的。此外,調試版本仍然使用此配置加載新的地圖。請參閱上面的build.gradle文件 – baconcheese113