Intereting Posts
Удаление кнопок с изображениями (Android) Как получить высоту списка в Android? Ошибка «Файл google-services.json отсутствует в корневой папке модуля. Плагин Google Services не может работать без него " Неправильное положение шкалы после применения эффекта масштабирования на холсте Android Android NDK / JNI – неопределенная ссылка на функцию, определенную в пользовательском файле заголовка Можете ли вы использовать admob во время alfa и бета-тестирования в google play? Android SQLite: попытка повторного открытия уже закрытого объекта Вызов собственных API-интерфейсов android из функций javascript встроенного WebView Отладка Android NDK, под окнами Измените цвет текста одного ClickableSpan при нажатии, не затрагивая другие ClickableSpans в том же TextView Android ActionBar не будет разделен на устройство Широковещательные приемники не работают в Android 6.0 Marshmallow Android: редактор XML по умолчанию больше не открывается Измерение интенсивности света с камеры Android Установите программный будильник Android

Ошибка авторизации API Google Android v2

Мои шаги:

После компиляции у меня случился сбой:

  ERROR/AndroidRuntime(10182): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source) at android.app.Activity.onCreateView(Activity.java:4716) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) at android.view.LayoutInflater.inflate(LayoutInflater.java:466) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) at android.app.Activity.setContentView(Activity.java:1881) at com.example.gm2.MyActivity.onCreate(MyActivity.java:16) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 

После этого я изменил макет на:

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" /> 

И изменил MyActivity на

  super.onCreate(savedInstanceState); setContentView(R.layout.main); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.map, MapFragment.newInstance()); transaction.commit(); 

В результате приложение было запущено, но я не видел карту.

Журнал консоли:

 ERROR/Google Maps Android API(10369): Authorization failure. 

Solutions Collecting From Web of "Ошибка авторизации API Google Android v2"

Шаги :

  • Чтобы устройство имело службы Google Play APK
  • Для установки сервиса Google Play. Более 2

Введите описание изображения здесь

  • Для создания проекта на странице https://code.google.com/apis/console/
  • Для включения «Google Maps Android API v2» Введите описание изображения здесь
  • Зарегистрировать SHA1 в проекте ( ТЕПЕРЬ, ВАМ НУЖНО WRITE SHA1; your.app.package.name ) в консоли API и получить API-ключ
  • Скопировать каталог ANDROID_SDK_DIR / extras / google / google_play_services / libproject / google-play-services_lib в корень вашего проекта
  • Добавить следующую строку в YOUR_PROJECT / project.properties

android.library.reference.1=google-play-services_lib

  • Добавить следующие строки в YOUR_PROJECT/proguard-project.txt

,

 -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } 

Теперь вы готовы создать свое собственное приложение Google Map с помощью API карт Google V2 для Android.

Если вы создаете приложение с минимальным SDK = 8, используйте библиотеку поддержки Android v4 + SupportMapFragment вместо MapFragment.

Также проверьте этот пост: Google Map Android Api V2 Sample Code не работает , если вы полностью уверены, что сделали правильные шаги, а затем следуйте второму ответу, аутентификация кэшируется где-то, попробуйте удалить приложение вручную (так же, как вы делаете с Нормальное приложение), затем «Запустить» снова проект

Поскольку я просто потратил много времени на то, чтобы заставить API работать, я постараюсь дать пошаговую проверку для Map API v2:

Шаг 1: Подать заявку на ваш ключ API

Если вы не знакомы с консолью Google API, прочитайте очень хороший ответ Rusfearuth выше.

Шаг 2: Проверьте SHA Hash (в этом случае я использую отладочный ключ eclipse):

На машине Windows попала в ваш каталог пользователя в командной строке:

 C:\Users\you>keytool -list -alias androiddebugkey -keystore .android\debug.keyst ore -storepass android -keypass android 

Вы получите что-то вроде:

 androiddebugkey, 15.10.2012, PrivateKeyEntry, Zertifikat-Fingerprint (SHA1): 66:XX:47:XX:1E:XX:FE:XX:DE:XX:EF:XX:98:XX:83:XX:9A:XX:23:A6 

Затем посмотрите на название своего пакета активности карты, например com.example.mypackagename

Вы комбинируете это и проверяете это с помощью своих настроек в консоли Google API:

 66:XX:47:XX:1E:XX:FE:XX:DE:XX:EF:XX:98:XX:83:XX:9A:XX:23:A6;com.example.mypackagename 

Где вы получаете свой API-ключ:

 AZzaSyDhkhNotUseFullKey49ylKD2bw1HM 

Шаг 3. Манифест метаданных

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

  <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AZzaSyDhkhNotUseFullKey49ylKD2bw1HM" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

Шаг 4. Функции манифеста:

Вам нужна эта запись, поскольку API-интерфейс карты требует поддержки некоторых графиков:

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

Не беспокойтесь, 99,7% устройств поддерживают это.

Шаг 5. Библиотека манифеста:

Добавьте библиотеку google.

  <uses-library android:name="com.google.android.maps" android:required="false" /> // This is required if you want your app to start in the emulator. I set it to false also if map is not an essential part of the application. 

Шаг 6. Разрешения манифеста:

Дважды проверьте имя пакета: com.example.yourpackage

 <permission android:name="com.example.yourpackage.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.yourpackage.permission.MAPS_RECEIVE" /> 

Добавьте следующие разрешения:

 <uses-permission android:name="android.permission.INTERNET" /> <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"/> 

Шаг 7. Включите фрагмент карты в свой макет:

 <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" class="com.google.android.gms.maps.SupportMapFragment" map:cameraTargetLat="47.621120" map:cameraTargetLng="-122.349594" map:cameraZoom="15" /> 

Если ваш выпуск версии 2.x для Android вам нужно добавить поддержку в свою деятельность:

 import android.support.v4.app.FragmentActivity; 

Для карты: записи для работы включают

 xmlns:map="http://schemas.android.com/apk/res-auto" 

В вашем макете активности (например, LinearLayout).

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

Шаг 8: Используйте Eclipse – Project – Clean.

Наслаждайтесь!

Вам необходимо использовать проект библиотеки, расположенный по адресу: ANDROID-SDK-DIRECTORY / extras / google / google_play_services / libproject

Это исправит вашу первую проблему.

Я не уверен в твоем втором, но это может быть побочным эффектом первого. Я все еще пытаюсь заставить карту работать в моем собственном приложении 🙂

Сегодня я столкнулся с этой проблемой. Я использовал Android Studio 2.1.3, Windows 10. Хотя отладка работает нормально, но если я обновляюсь до режима выпуска, это не сработает. Я очистил все условия proguard, обновил их, но это не было решением.

Решение связано с структурой проекта. Файл google_maps_api.xml отличается от app \ src \ debug \ res и app \ src \ release \ res. Я вручную скопировал пасту из отладки в папку выпуска.

Теперь это работает.

Я перехожу от V1 к V2 Google Maps. Я получал эту ошибку, пытаясь запустить приложение через Eclipse. Основная причина для меня заключалась в использовании хранилища ключей выпуска, а не в хранилище отладки Android, которое используется, когда вы запускаете его через Eclipse. Следующая команда (OSX / Linux) доставит вам ключ SHA1 в хранилище отладки:

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

Если вы используете Windows 7, вы должны использовать эту команду:

 keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 

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

Я решил эту ошибку, проверив имя пакета в манифесте и приложении build.gradle .

В манифесте:

Я использую имя пакета как:

 com.app.triapp 

В приложении build.gradle:

  defaultConfig { applicationId "com.app.live" } 

После изменения в com.app.triapp в build.gradle , я решил проблему.

"Java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable"

У этой ошибки тоже есть: Файл -> import -> Существующий код для Android в рабочей области -> Обзор -> Android sdks -> extras -> google -> google_play_services -> lib_project -> google_play_services_lib и ОК. Проверьте проект и Готово.

Проект отправляется в Package Explorer. Теперь перейдите в свой проект (с ошибкой) -> свойства -> Android и в библиотеке нажмите Добавить … google_play_services_lib должен быть там! Добавьте и попробуйте еще раз 🙂

Просто добавьте это в свой файл манифеста:

 **<uses-library android:name="com.google.android.maps" />** 

Например…

 <application android:icon="@drawable/icon" android:label="@string/app_name" > <uses-library android:name="com.google.android.maps" /> <activity android:name=".California" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

И, пожалуйста, обновите свою интернет-версию google play … Идите в Window -> Android sdk manager-> обновите сервис google play … установили его .. удалите старый и сохраните его. Возьмите это из ANDROID-SDK-DIRECTORY / extras / google / google_play_services /

Спасибо … Прошу проголосовать

У меня была com.bla.bla же проблема, но оказалось, что это было потому, что я создал два разных ключа API карты с одним отпечатком SHA-1 с почти похожим именем пакета com.bla.bla и другим com.bla.bla.something .

У меня была такая же проблема, и мне просто нужно было установить SDK для проекта библиотеки MapsApiV2 на Android 2.3.3 (API lvl 10)

Я была такая же проблема. Примерно через два часа поиска в Google, повторных попыток, много раз обновляя API-ключ и т. Д., Я обнаружил, что я включил неправильную услугу в консоли APIS Google. Я включил Google Maps API v2 Service , но для Android Apps вам необходимо использовать Google Maps Android API v2 . После включения правильного обслуживания все начали работать.

ВАШ ECLIPSE МОЖЕТ ИЗМЕНИТЬ SHA1 KEY, поэтому вы должны вернуть свой ключ google с новым ключом SHA1 здесь: https://console.developers.google.com/project/watchful-net-796/apiui/credential. После этого скопируйте новый ключ В манифест и повторно загрузите эту страницу google несколько раз, и ваш ключ будет обновлен, перестроит ваш проект, он будет работать. P / S: для моей ошибки я удалил папку .android, чтобы затмить regen SHA1.

Я выполнил тот же шаг, что и в Google Doc, но я получал ту же ошибку. Позже я понял, что я подписываю свое приложение с моим app.keystore и ключ SHA, который я использовал для создания ключа API, был отладочным.

Поэтому я просто удалил signingConfig signingConfig.generic из файла build.gradle и моя карта начала работать нормально.

Надеюсь, это поможет кому-то.

Я столкнулся с той же проблемой.

Если вы выпустили api для своей версии приложения. Тогда api будет работать только для версии релиза, а не для отладочной версии. Поэтому убедитесь, что вы используете версию выпуска в своем телефоне или эмуляторе.