Google Map не отображается в моей MapActivity. - PullRequest
3 голосов
/ 24 ноября 2010

Я создал хранилище ключей выпуска, используя Eclipse IDE. Я подписал его с помощью keytool и зарегистрировался на Google Maps. Я подключил ключ, но моя карта не отображается.

Maps show up properly when I use the key associated with my debug keystore.

Как я могу диагностировать это? Я выполнил те же действия, что и для отладки, для выпуска.

UPDATE:

Вот мой файл манифеста:

      <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.cancertrials" android:versionCode="1"
    android:versionName="1.0">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:label="@string/app_name" android:name="splash">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".HomeActivity" android:label="@string/app_name" android:windowSoftInputMode="stateHidden">
        </activity>
        <activity android:name=".moreactivity" android:label="@string/app_name">
        </activity>
        <activity android:name=".aboutmedtrust" android:label="@string/app_name">
        </activity>
        <activity android:name=".aboutclinical" android:label="@string/app_name">
        </activity>
        <activity android:name=".aboutglaxosmith" android:label="@string/app_name">
        </activity>
        <activity android:name=".termsofuse" android:label="@string/app_name">
        </activity>
        <activity android:name=".privacy" android:label="@string/app_name">
        </activity>
        <activity android:name=".feedback" android:label="@string/app_name">
        </activity>
        <activity android:name=".informationcancer" android:label="@string/app_name">
        </activity>
        <activity android:name="AdvanceSearchActivity" android:label="@string/app_name">
        </activity>
        <activity android:name="SearchingActivity"></activity>
        <activity android:name="AdvanceSearchTab1"></activity>
        <activity android:name="AdvanceSearchTab2"></activity>
        <activity android:name="DetailedActivity"></activity>
        <activity android:name="summary"></activity>
        <activity android:name="conditions"></activity>
        <activity android:name="description"></activity>
        <activity android:name="inclusion"></activity>
        <activity android:name="exclusion"></activity>
        <activity android:name="BookmarkActivity"></activity>
        <activity android:name="RecentActivity"></activity>
        <activity android:name="information"></activity>
    <uses-library android:name="com.google.android.maps"></uses-library>
    <activity android:name="Mapsactivity">
    </activity>
    <activity android:name="mapView"></activity>

</application>
    <uses-sdk android:minSdkVersion="3" />

</manifest> 

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

Вы добавили интернет-разрешение? Этот вопрос задают буквально каждый день.

0 голосов
/ 29 ноября 2012

Итак, я столкнулся с этой проблемой вчера и решил вручную, подписав .apk

Я предполагаю, что вы используете свое личное хранилище ключей, и вы ввели ключ карты релиза в свое представление карты (и другие ресурсы, если необходимо).

Чтобы сделать это, вы выбираете свой проект в обозревателе проектов Eclipse (щелкните правой кнопкой мыши) -> Инструменты Android -> Экспорт неподписанного пакета. Сохраните его там, где захотите.

Откройте свой терминал (я на машине с Windows 7), перейдите в папку jdk (НЕ jre), перейдите в bin \.

Используйте следующую команду: (Обратите внимание, что "требуется, если вы вводите путь)

        jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore "path-to-your-keystore" "path-to-your-apk" <apk alias> -certs 

Для проверки подписи выполните

jarsigner -verify "path-to-recently-signed-apk" -verbose 

(Вы можете опустить подробный вариант, если хотите). Он (будем надеяться) покажет, что jar проверен (в конце концов он предупредит вас о записях без проверенной цепочки сертификатов, что не имеет значения в моем случае)

Затем запустите zipalign:

zipalign -v 4 "path-to-signed-apk" "path-to-signed-and-aligned.apk"

Обратите внимание, что он создаст новый apk, который соответствует стандартам googles.

Установите этот apk, и ваши карты должны хорошо отображаться!

Из: http://developer.android.com/tools/publishing/app-signing.html#ExportWizard

0 голосов
/ 25 ноября 2010

Вы должны получить отдельный ключ API при подписании с помощью хранилища ключей разблокировки при изменении отпечатка пальца.

Не забудьте также установить .apk, подписанный правильным ключом.

Обновление: Я имел в виду, вы уверены, что подписали свой APK правильным ключом?Это означает, что вы уверены, что подписали его с помощью хранилища ключей выпуска при создании APK?

Когда вы экспортируете его, действительно ли вы действительно выбираете хранилище ключей, с которым его нужно подписать?

...