2015-12-15 136 views
1

我編寫了一個基本的地圖應用程序,它可以通過AndroidStudio輕鬆實例化。片段的唯一區別是在另一個自定義佈局中加載。Google地圖顯示在模擬器上,但不顯示在設備上

package com.wayl.activities; 

import android.os.Bundle; 
import android.support.v4.app.FragmentManager; 
import android.support.v7.app.AppCompatActivity; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

import com.wayl.R; 

public class MapsActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 

     FragmentManager myFragmentManager = getSupportFragmentManager(); 
     SupportMapFragment mapFragment = (SupportMapFragment) myFragmentManager.findFragmentById(R.id.map); 
     GoogleMap mMap = mapFragment.getMap(); 

     // Add a marker in Sydney and move the camera 
     LatLng sydney = new LatLng(-35, 152); 
     mMap.addMarker(new MarkerOptions().position(sydney).title("Marker near Sidney")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
    } 
[...] 

如上所述,該應用程序在AVD中完美工作,但無法使其在真實設備上工作。它只顯示一個空的地圖佔位符,並且也有多彩的Google徽標。但沒有標記,沒有網格,沒有按鈕,沒有別的。

爲什麼我認爲它應該工作:

  • 網絡,無線網絡,都OK,無論是在手機上作爲AVD

  • The OpenGL version shouldn't be a problem,我都在 運行APK銀河三星S3和Galaxy Note 4.

  • 我把我的指紋都用於調試和發佈版本檢索與 keytool並與我的鑰匙連接撕裂,所以key it's OK,你也可以看到the reference image,即使它說這是可選的。我將基礎軟件包和包含Maps活動的軟件包都放在了一起,以確保它。

  • 我等待了足夠的時間the app to fetch the location,並指紋傳播以防萬一需要。

  • 清單包含所有檢索粗,細位置的正確權限(記得在AVD一切完美)

我已經在過去成功開發在Android的地圖。我記得每次經過4或5次試驗和錯誤之後,我都可以實現這個過程。這次我不知道該怎麼做更多。我正在播放S.O.瞭解我錯在哪裏。

+0

是否能夠在設備中看到實際的Google地圖應用程序? –

+0

@ShylendraMadda是的,谷歌地圖工作正常,並正確加載我的手機(Galaxy S3,Galaxy Notes)上。 –

+0

所以一旦卸載並安裝您的基本應用程序 –

回答

4

我終於找到了解決辦法。

在新AndroidStudio樣品,用密鑰(google_maps_api.xml)文件已放置到文件夾應用\ SRC \調試\ RES \值,另一個在應用\ SRC \釋放\ res \ values

雖然AndroidStudio會顯示所有佈局,所有值文件等,但只有一個帶有密鑰的值文件,所以我無法注意到文件系統中實際存在兩個文件,一個沒有密鑰建立!我甚至沒有現在可以有不同的文件夾。

我在這幾天掙扎。每當我嘗試創建一個簡單的地圖時,它都會發生變化,彈出窗口並讓我失去時間。當你找到解決方案的時候,一切似乎都很明顯,但同時也很令人沮喪。

謝謝大家幫忙!我真的很感激。

0

你必須檢查你試圖安裝在設備上的應用程序。它應該用釋放鍵簽名(而模擬器使用調試鍵)!

+0

你好@ksenia。感謝您的回答,但是,發行版的應用程序已經使用發行版密鑰進行了簽名(即,從AndroidStudio:Build>生成簽名的APK)。釋放鍵已用於檢索圖像中的SHA指紋(第二對)。我也讓你注意到,我禁用了proguard(設置爲false),只是爲了消除一些可能的錯誤原因。 –

+0

是否將發佈密鑰指紋添加到您的Google開發者帳戶並在您的項目中更改了它? – RexSplode

+0

@SandroScarano,你確定(在AndroidStudio:Build> Generate Signed APK)下拉列表「Build Type」中的值是「release」,而不是「debug」? – Ksenia

相關問題