Android Google Map API V2 Пустой экран
Привет, я недавно воспользовался Vogella учебником по Google Map API v2. Код похож на его. Но по какой-то причине карта отображается пустым, а логарифм также не показывает ошибок. Я также следил за этим видео, чтобы получить отпечаток пальца SHA1, затем я поместил ключ API в файл манифеста. Я использовал хранилище отладки C:\Users\UserName.android\debug.keystore, которое также является хранилищем отладки по умолчанию, расположенным в Eclipse → Windows → Preference → Android → Build.
Я также создал новый ключ 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;
}
}
Спасибо!
Ответы
Ответ 1
У вас есть пара разрешений с вашим манифестом. Во-первых, в следующем вам нужно заменить имя пакета на ваш пакет, вам также нужно как 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"/>
Ответ 2
Для меня оказалось, что я не включил Google Maps Android API v2
. Мы использовали другой API Карт Google, который, как я предполагал, был таким же.
Ответ 3
Если это не сработало, следуйте этому
Решение проблемы с пустым экраном на картах:
Привет, я прошел через этот пустой экран в течение очень долгого времени и опробовал все решения, которые вы можете себе представить. Теперь он решил, и были следующие шаги:
1 - тщательно просмотрите все шаги этот учебник.
2. Если пустой экран все тот же, удалите файл хранения файла отладки, который существует в
c:\Users\youUser.android\debug.keystore < - удалить этот файл
3. На eClips IDE перестройте приложение, чтобы оно автоматически создало этот файл.
4-On eclips перейдите в Window → preferences → android → Build
скопируйте свежую сгенерированную SHA1, а затем следуйте шагам генерации обычного ключа.
5-Run на вашем реальном устройстве, и я надеюсь, что вы увидите свою карту:)
Ответ 4
Вы должны запустить свое приложение в амулете, имеющем следующую конфигурацию....
1) Google API (образ системы x86)
2) выберите checkBox, указывающий Use Host GPU.
Ответ 5
Мне пришлось добавить правильный отпечаток сертификата SHA-1 на мою консоль разработчика Google.
-
Отобразить текущий отпечаток: keytool -list -keystore ~/.android/debug.keystore
-
Скопируйте отпечаток пальца (например, 48: 6F: 55: B7: C5: E4: 54: E1: 29: D5: E1: E1: E2: A8)
-
Добавьте его в свои учетные данные для этого конкретного приложения в Google Developer Console
Ответ 6
Большинство людей забывают активировать Google Maps Android API V2 в консоли разработчика, я активировал его и вуаля, появилась моя карта.
Ответ 7
Задайте настраиваемые ключевые слова так же, как и по умолчанию (Eclipse). И зарегистрируйте ключ API в консоли Google, как сказано в документации.
Ответ 8
У меня есть аналогичная проблема с картой. После исправления всех проблем с lib и ключами я просто увидел белый экран с "Google".
Проблема заключалась в том, что я положил MapFragment
в ScrollView
. После удаления ScrollView
все работает нормально. Я вижу карту.
Ответ 9
Android Studio:
убедитесь, что вы поместили свой ключ в правильную иерархию
![введите описание изображения здесь]()
Ответ 10
В моем случае это было существующее приложение, которое я клонировал из GitHub и не изменил ключ API. Для меня это помогло включить SHA-1 моего сертификата подписи. Следуйте этим коротким инструкциям, чтобы получить отпечаток SHA-1.
Затем у меня был главный разработчик, добавив мой отпечаток SHA-1 в авторизованные пакеты для его соответствующего API-ключа здесь. Затем я сделал сборку таким же образом, и это сработало.
Ответ 11
мой ответ в другом сообщении - это то, что на самом деле работает для меня, я вставляю сертификат подписи приложения sha-1
Ответ 12
У меня аналогичная проблема, когда отладка была в порядке, но пустой экран в выпуске. 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