Android Google Map API V2 пустой экран
Привет, я недавно следил за учебником Vogella по Google Map API v2. Код похож на его. Но по какой-то причине карта отображается пустой, и logcat также не показывает ошибок. Я тоже следил за этим видео чтобы получить отпечаток пальца SHA1, я помещаю ключ API в файл манифеста. Я использовал хранилище ключей отладки C:UsersUserName - ... androiddebug.keystore, который также является хранилищем ключей отладки по умолчанию, расположенным в Eclipse - > Windows - > Preference - > Android - > Build.
I также сгенерирован новый ключ API, и он по-прежнему не работает.
файл манифеста:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.barcodelibrary"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="15" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".HomeActivity"
android:label="@string/title_activity_home" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ScanActivity"/>
<activity android:name=".MapActivity"/>
<activity android:name=".BarcodeHelper"/>
<activity android:name=".JsonHelper"/>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my api key" />
</application>
</manifest>
Это мой файл макета для действия карты:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
Это моя деятельность на карте:
public class MapActivity extends Activity
{
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_map, menu);
return true;
}
}
Спасибо!
12 ответов
у вас есть несколько проблем с разрешением с манифестом. Во-первых, в следующем вам нужно заменить имя пакета вашим пакетом, вам также нужно как uses-permission
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
в ваше имя пакета, должно быть --
<permission
android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>
наконец, вы, кажется, не хватает следующих разрешений от задание разрешений на руководство по началу работы --
<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"/>
для меня оказалось, что я не позволил Google Maps Android API v2
. Мы использовали другой API Google Maps, который, как я предполагал, был таким же.
вы должны запустить приложение в amulator со следующей конфигурацией.... 1) Google API (образ системы x86) 2) установите флажок Использовать графический процессор Хоста..
Если это не сработало, следуйте этому
разрешения экрана карты: Привет, я был через этот пустой экран в течение очень долгого времени и опробовал все решения, которые вы можете себе представить.Теперь он решил, и шаги были:
1-пройдите все шаги в этом уроке тщательно.
2-Если пустой экран все тот же, удалите файл хранилища ключей отладки, который существует в c:\Users\youUser.android\debug.keystore
3 - на Eclips IDE перестроить приложение, так что он будет автоматически повторно создать этот файл. 4-на eclips перейдите в окно- > настройки- > android->построить скопируйте свежий сгенерированный SHA1, а затем выполните обычные шаги генерации ключей . 5-запустите на своем реальном устройстве, и я надеюсь, что вы увидите свою карту:)
мне пришлось добавить правильный отпечаток сертификата SHA-1 в консоль разработчика Google.
отображение текущего отпечатка пальца:
keytool -list -keystore ~/.android/debug.keystore
скопируйте отпечаток пальца (например,48:6Ф:55:В7:С5:Е4:54:Е1:29:Д5:Е1:Е1:Е2:А8)
добавьте его в свои учетные данные для этого конкретного приложения в Консоль Разработчика Google
установите пользовательский keysote на тот же, что и по умолчанию (Eclipse). И зарегистрируйте ключ API в консоли google, как сказано в документации.
у меня аналогичная проблема с картой. После исправления всех lib и ключевых проблем я просто увидел белый экран с надписью "Google".
Проблема была в том, что я поставил MapFragment
на ScrollView
. После удаления ScrollView
все работает нормально. Я вижу карту.
большинство людей забывают активировать Google Maps Android API V2 в консоли разработчика, Я активировал его и вуаля, моя карта появилась.
в моем случае это было существующее приложение, которое я клонировал из GitHub и не менял ключ API. Что сработало для меня, так это включить SHA-1 моего сертификата подписи. Следуйте этим краткое руководство чтобы получить отпечаток пальца SHA-1.
затем я попросил главного разработчика добавить мой отпечаток пальца SHA-1 в авторизованные пакеты для его соответствующего ключа API здесь. Затем я сделал сборку снова таким же образом, и это сработало.
мой ответ в другой пост это то, что на самом деле работает для меня, я вставляю сертификат подписи приложения ша-1
у меня есть аналогичная проблема, где отладка была в порядке, но пустой экран при выпуске. Ключи API были в порядке.
то, что сработало, заменяет это:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key" />
этой
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXGNc" />
добавить непосредственно ключ api без строки ressource