Google Maps Android API v2 работает только на одном телефоне

Я работаю со своей командой над тем, чтобы Карты Google отображались с использованием их Android API v2.

Мне удалось получить коды и протестировать их на моем собственном телефоне, и он работает отлично... однако, когда коды запускаются на телефонах моих товарищей по команде, их экраны становятся серыми, и у них есть это:

E/Google Maps Android API(30514): Authorization failure.

Странно то, что эта ошибка не появляется в их логарифме на 100%, иногда они просто получают серый экран без каких-либо ошибок. Кстати, наши коды синхронизированы с SVN, поэтому они обязательно обновляются.

Мой ключ API получен из ключа отладки и проверен на правильность, поскольку он отлично работает на моем телефоне.

Я не уверен, что именно вызывает это, и поэтому я не уверен, какие коды я могу опубликовать здесь, чтобы обратиться за помощью. Тем временем я собираюсь опубликовать свои коды классов MapFragment и надеюсь, что это прольет свет на кого-то, кто поможет.

Пожалуйста, дайте мне знать, если есть что-то еще, что я могу опубликовать здесь, чтобы найти ответ, и я опубликую это как можно скорее. Спасибо!

public class POnlineMapViewFragment extends SherlockMapFragment {

    private GoogleMap mMap;
    private double latitude;
    private double longitude;
    private String placeName;
    static Bundle bundle;
    private LatLng point;
    View v;

    @Override
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        bundle = getArguments();
        if(bundle != null) {
        this.latitude = getArguments().getDouble("latitude");
        this.longitude = getArguments().getDouble("longitude");
        this.placeName = getArguments().getString("placeName");
        this.point = new LatLng(latitude,longitude);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflator, ViewGroup container, Bundle savedInstanceState) {
        View v = super.onCreateView(inflator, container, savedInstanceState);
        mMap = getMap();

        CameraUpdate center= CameraUpdateFactory.newLatLng(point);
        CameraUpdate zoom=CameraUpdateFactory.zoomTo(17);
        mMap.addMarker(new MarkerOptions().position(point).title(placeName).icon(BitmapDescriptorFactory.fromResource(R.drawable.gps_small)));


        mMap.moveCamera(center);
        mMap.animateCamera(zoom);

        return v;     

    }

    public static POnlineMapViewFragment newInstance(Bundle b) {
        POnlineMapViewFragment mapfrag = new POnlineMapViewFragment();
        mapfrag.setArguments(b);
        return mapfrag;
    } 
}

person lyk    schedule 28.01.2013    source источник
comment
ваше высказывание Google Maps Android API v2 работает только на одном телефоне верно, что написано в официальном документе разработки.   -  person BBonDoo    schedule 28.01.2013
comment
@BBonDoo извините, что вы имеете в виду?   -  person lyk    schedule 28.01.2013
comment
Как я думаю, Google Maps Android API (30514): ошибка авторизации означает, что вы не получаете доступ к Google API с помощью ключа API. вы должны использовать ключ Google API и иметь для этого учетную запись Gmail.   -  person Narendra Pal    schedule 28.01.2013
comment
@NarendraPal Я почти уверен, что ключ API правильный, поскольку карта Google работает и отлично отображается на моем телефоне во время отладки. Однако он не отображается на телефоне моих друзей во время отладки. Даже сбой авторизации не происходит на 100%, иногда это будет просто серый экран без каких-либо ошибок   -  person lyk    schedule 28.01.2013
comment
@lyk...пожалуйста, см. этот документ.   -  person BBonDoo    schedule 28.01.2013
comment
@lyk...извините, теперь я вижу..на телефоне вашего друга?...   -  person BBonDoo    schedule 28.01.2013
comment
@BbonDoo, а??? Я не уверен, что я должен увидеть из документа. ключ API и все необходимые настройки уже выполнены. И да, я думаю, вы могли неправильно понять? Я спрашиваю, почему он не работает на телефоне моего друга, работающем в режиме отладки, подключенном к компьютеру, когда он работает на моем   -  person lyk    schedule 28.01.2013
comment
@lyk..пожалуйста, проверьте, что в настройках телефона вашего друга включена отладка по USB.   -  person BBonDoo    schedule 28.01.2013


Ответы (2)


Чтобы использовать карту, вам нужен ключ карты API от Google, предоставив отпечаток вашего сертификата хранилища ключей, который вы использовали для создания apk (debuge.keystore в случае среды разработки). После того, как вы получите ключ API карты для определенного сертификата, вы ДОЛЖНЫ использовать тот же сертификат debuge.keystore), чтобы собрать файл apk для успешного запуска приложения на всех устройствах, иначе он будет отображать пустую карту с серым квадратом.

  • Если вы и ваш друг создаете apk с другого компьютера/компьютера, вы должны использовать один и тот же сертификат отладки для создания файла apk.
person Rakesh Bhalani    schedule 28.01.2013
comment
О, так вы говорите, что разные машины будут иметь разные хранилища ключей отладки? Вот почему? - person lyk; 28.01.2013
comment
Все в порядке. Найдите файл debug.keystore в каталоге user/.android и замените файл debug.keystore ваших друзей на этот и повторно запустите приложение из eclipse. - person Rakesh Bhalani; 28.01.2013
comment
Хорошо, я попробую это! Спасибо! - person lyk; 28.01.2013
comment
Я думаю, что это случай использования одного и того же установщика на эмуляторах разных компьютеров. Не должно быть в случае с устройствами - person Archie.bpgc; 28.01.2013
comment
Есть ли какие-то другие файлы, которые я должен передать своим друзьям? Я попросил их заменить файл debug.keystore, и он все еще не работает, все еще получая ошибку авторизации, что очень странно. - person lyk; 28.01.2013
comment
@lyk Пожалуйста, удалите приложение с эмулятора или устройства и переустановите приложение.. Я должен работать.. - person Rakesh Bhalani; 28.01.2013
comment
Все еще не работает даже после удаления =( Я не знаю, что еще я пропустил - person lyk; 28.01.2013
comment
Тестирование на новом телефоне путем передачи в телефон файла .apk, и он работает странно. Все еще не понимаю, почему выполнение шагов по замене файла debug.keystore на других компьютерных терминалах не сработает... - person lyk; 28.01.2013
comment
Это так странно, но попробовав пол дня спустя, теперь все работает! Спасибо большое за вашу помощь! знак равно - person lyk; 29.01.2013

У меня была та же проблема, и решение состояло в том, чтобы заменить файл debug.keystore моего друга моим локальным файлом debug.keystore на моем ПК, потому что ключ был сгенерирован с использованием моего файла debug.keystore.

person Ivica Obadic    schedule 10.03.2015