2013-05-14 3 views
0

Я только что потратил последние несколько часов на настройку API Карт Google v2. Теперь, когда я думаю, что я это сделал, я иду, чтобы проверить все, и вот, мое приложение больше не работает на моем телефоне. Что я сделал? Это что-то, что я сделал, чтобы оскорбить Карты Google? Я вижу свой телефон в списке виртуальных устройств, и VDK говорит, что устройство действительно. Но когда я запускаю приложение, на моем телефоне ничего не происходит. Я не вижу особых ошибок в LogCat, поэтому я не знаю, что я сделал. Вот мой файл manifest.xml, если здесь что-то не так:Google Maps не работает на моем телефоне как виртуальном устройстве

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.my_app" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="17" /> 

<!-- The following are all required to used Google Maps --> 
<permission 
    android:name="com.example.my_app.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 

<uses-permission android:name="com.example.my_app.permission.MAPS_RECEIVE"/> 

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<!-- The following two permissions are not required to use 
    Google Maps Android API v2, but are recommended. --> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<!-- End Google maps requirements section --> 

<application 
    android:allowBackup="true" 
    android:theme="@android:style/Theme.NoTitleBar" > 


    <activity 
     android:name="com.example.my_app.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".MyEventsListActivity"></activity> 
    <activity android:name=".EventDetail"></activity> 

    <activity android:name="com.google.android.gms" /> 

    <!-- Remove this line once the maps are working --> 
    <activity android:name=".MapTest"></activity> 

    <!-- Google maps API key --> 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="xxxxxxxxxx"/> 
</application> 

</manifest> 

Кто-нибудь знает, что могло случиться? Благодаря!

EDIT: Основываясь на некоторых ответах, я должен прояснить пару вещей. Прежде всего, я использую только одну машину. Отпечаток пальца SHA-1, который я сгенерировал, был сгенерирован на той же самой машине, на которой я работаю, поэтому проблем там нет. Во-вторых, телефон, который я тестирую, работал отлично до моей попытки интегрировать карты в мое приложение. Вот почему я подозреваю, что каким-то образом моя попытка использовать карты противоречит моему телефону.

Что мне интересно, так ли отпечаток SHA-1 каким-то образом недействителен для моего телефона? Если отпечаток является действительным только для одной машины (я считаю, что это так), мой телефон считается второй машиной ??? Телефон привязан к компьютеру через USB-кабель, и я запускаю его как цель виртуального устройства. Есть ли шанс, что это проблема?

Спасибо за ответы всем.

РЕШЕНИЕ: Я думаю, что я понял это. Мой телефон работает только под управлением Android 2.3.4 (API 10). Поскольку карты v2 работают на минимуме API 11, мой телефон не был распознан по этой причине. Я должен был изменить minSdkVersion до 10, а также добавить

к моему узлу приложения. Кажется, что это работает, хотя я до сих пор не получаю карту для отображения. У меня обычный фон Google и сетка. Но, по крайней мере, никаких ошибок и моего приложения снова не работает на моем телефоне. Любые предложения приветствуются. Еще раз спасибо!

+0

вы выполнили все необходимые шаги? и какое устройство ru использует? – TheFlash

+0

показать нам код.http: //www.vogella.com/articles/AndroidGoogleMaps/article.html – Raghunandan

ответ

1

Ключ API, который вы создали, будет работать только на этой конкретной машине .. Если скомпилировать и установить .apk на другой машине Maps не будет отображаться ..

+0

Зачем это работать на одной машине? –

+0

Поскольку при создании API-ключа для google maps v2 нам необходимо предоставить отпечаток SHA-1 (уникальный для каждой машины) и имя пакета. – aditya

+0

Чтобы отобразить карты с другой машины, мы можем установить только.apk, сгенерированный на компьютере, который зарегистрирован в Google. – aditya

0

Потому что вы изменили minSDK 10 причина, по которой это не работает, вероятно, потому, что вы используете неправильный объект для карты, убедитесь, что используете SupportMapFragment и FragmentActivity (для поддержки фрагментов в ОС до уровня API 11).

Конечно, вам нужно будет добавить библиотеку android-support-v4.

Как уже было предложено здесь следовать за этот короткий пост в блоге 9 шаг, который я написал для интеграции Google Maps в вашем приложении, если вы хотите поддерживать ОС ниже, чем 11:

Google Maps API V2

Смежные вопросы