После запуска программы Google Places API

Я пытаюсь интегрировать API Google Адресов в свое приложение, но, похоже, не могу запустить API. Каждый раз, когда я нажимаю кнопку, чтобы запустить API, он будет загружен, а затем вернется обратно на главный экран. Я полагаю, что я выполнил все шаги в документации API, но, похоже, похоже, не нашел проблемы. Мой код выглядит следующим образом:

Класс Java:

package lgalle19.developements.findplaces; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.text.Html; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.google.android.gms.common.GooglePlayServicesNotAvailableException; import com.google.android.gms.common.GooglePlayServicesRepairableException; import com.google.android.gms.location.places.Place; import com.google.android.gms.location.places.ui.PlacePicker; public class PlacePickerActivity extends ActionBarActivity { private static final int PLACE_PICKER_REQUEST = 1; private TextView mViewName; private TextView mViewAddress; private TextView mViewAttributions; private Button mPickerButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_place_picker); mViewName = (TextView) findViewById(R.id.textView); mViewAddress = (TextView) findViewById(R.id.textView2); mViewAttributions = (TextView) findViewById(R.id.textView3); mPickerButton = (Button) findViewById(R.id.pickerButton); } public void onPickButtonClick(View v) { // Construct an intent for the place picker try { PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder(); Intent intent = intentBuilder.build(this); // Start the intent by requesting a result, // identified by a request code. startActivityForResult(intent, PLACE_PICKER_REQUEST); } catch (Exception e){ e.printStackTrace(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PLACE_PICKER_REQUEST && resultCode == Activity.RESULT_OK) { // The user has selected a place. Extract the name and address. final Place place = PlacePicker.getPlace(data, this); final CharSequence name = place.getName(); final CharSequence address = place.getAddress(); String attributions = PlacePicker.getAttributions(data); if (attributions == null) { attributions = ""; } mViewName.setText(name); mViewAddress.setText(address); mViewAttributions.setText(Html.fromHtml(attributions)); } else { super.onActivityResult(requestCode, resultCode, data); } } } 

Основной XML:

 <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" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".PlacePickerActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_marginTop="20dp" android:layout_centerHorizontal="true"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView2" android:layout_below="@+id/textView" android:layout_centerHorizontal="true"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Launch Places API Picker" android:id="@+id/pickerButton" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:onClick="onPickButtonClick" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView3" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView3" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:id="@+id/poweredBy" android:src="@drawable/powered_by_google_light"/> </RelativeLayout> 

Manifest:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="lgalle19.developements.findplaces" > <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".PlacePickerActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.geo.API_KEY" android:value="MY API KEY"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> </application> </manifest> 

Gradle:

 apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "lgalle19.developements.findplaces" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.0.0' compile 'com.google.android.gms:play-services:7.5.0' } 

LogCat:

 08-07 13:25:37.053 29527-29527/lgalle19.developements.findplaces E/Zygote﹕ MountEmulatedStorage() 08-07 13:25:37.053 29527-29527/lgalle19.developements.findplaces E/Zygote﹕ v2 08-07 13:25:37.053 29527-29527/lgalle19.developements.findplaces I/libpersona﹕ KNOX_SDCARD checking this for 10245 08-07 13:25:37.053 29527-29527/lgalle19.developements.findplaces I/libpersona﹕ KNOX_SDCARD not a persona 08-07 13:25:37.053 29527-29527/lgalle19.developements.findplaces I/SELinux﹕ Function: selinux_compare_spd_ram, SPD-policy is existed. and_ver=SEPF_SM-G920V_5.0.2 ver=27 08-07 13:25:37.063 29527-29527/lgalle19.developements.findplaces I/SELinux﹕ Function: selinux_compare_spd_ram , priority [1] , priority version is VE=SEPF_SM-G920V_5.0.2_0027 08-07 13:25:37.063 29527-29527/lgalle19.developements.findplaces E/SELinux﹕ [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL 08-07 13:25:37.063 29527-29527/lgalle19.developements.findplaces I/art﹕ Late-enabling -Xcheck:jni 08-07 13:25:37.083 29527-29527/lgalle19.developements.findplaces D/TimaKeyStoreProvider﹕ TimaSignature is unavailable 08-07 13:25:37.083 29527-29527/lgalle19.developements.findplaces D/ActivityThread﹕ Added TimaKeyStore provider 08-07 13:25:37.153 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ Inside getClassLibPath + mLibMap{0=, 1=} 08-07 13:25:37.163 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ Inside getClassLibPath caller 08-07 13:25:37.203 29527-29527/lgalle19.developements.findplaces D/InjectionManager﹕ InjectionManager 08-07 13:25:37.203 29527-29527/lgalle19.developements.findplaces D/InjectionManager﹕ fillFeatureStoreMap lgalle19.developements.findplaces 08-07 13:25:37.213 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ Constructor lgalle19.developements.findplaces, Feature store :{} 08-07 13:25:37.213 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ featureStore :{} 08-07 13:25:37.273 29527-29527/lgalle19.developements.findplaces D/PhoneWindow﹕ *FMB* installDecor mIsFloating : false 08-07 13:25:37.273 29527-29527/lgalle19.developements.findplaces D/PhoneWindow﹕ *FMB* installDecor flags : -2139029248 08-07 13:25:37.333 29527-29527/lgalle19.developements.findplaces D/Activity﹕ performCreate Call Injection manager 08-07 13:25:37.333 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ dispatchOnViewCreated > Target : lgalle19.developements.findplaces.PlacePickerActivity isFragment :false 08-07 13:25:37.353 29527-29561/lgalle19.developements.findplaces D/OpenGLRenderer﹕ Render dirty regions requested: true 08-07 13:25:37.363 29527-29527/lgalle19.developements.findplaces D/PhoneWindow﹕ *FMB* isFloatingMenuEnabled mFloatingMenuBtn : null 08-07 13:25:37.363 29527-29527/lgalle19.developements.findplaces D/PhoneWindow﹕ *FMB* isFloatingMenuEnabled return false 08-07 13:25:37.473 29527-29561/lgalle19.developements.findplaces D/libEGL﹕ loaded /vendor/lib64/egl/libGLES_mali.so 08-07 13:25:37.513 29527-29561/lgalle19.developements.findplaces I/OpenGLRenderer﹕ Initialized EGL, version 1.4 08-07 13:25:37.523 29527-29561/lgalle19.developements.findplaces I/OpenGLRenderer﹕ HWUI protection enabled for context , &this =0x7fa4c75060 ,&mEglDisplay = 1 , &mEglConfig = -1529904464 08-07 13:25:37.523 29527-29561/lgalle19.developements.findplaces D/OpenGLRenderer﹕ Get maximum texture size. GL_MAX_TEXTURE_SIZE is 8192 08-07 13:25:37.523 29527-29561/lgalle19.developements.findplaces D/OpenGLRenderer﹕ Enabling debug mode 0 08-07 13:25:37.523 29527-29561/lgalle19.developements.findplaces D/mali_winsys﹕ new_window_surface returns 0x3000, [1440x2560]-format:1 08-07 13:25:37.553 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ dispatchCreateOptionsMenu :lgalle19.developements.findplaces.PlacePickerActivity 08-07 13:25:37.553 29527-29527/lgalle19.developements.findplaces I/InjectionManager﹕ dispatchPrepareOptionsMenu :lgalle19.developements.findplaces.PlacePickerActivity 08-07 13:25:37.673 29527-29527/lgalle19.developements.findplaces I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@3d2a49fa time:246449518 08-07 13:25:42.163 29527-29527/lgalle19.developements.findplaces D/ViewRootImpl﹕ ViewPostImeInputStage ACTION_DOWN 08-07 13:25:42.813 29527-29561/lgalle19.developements.findplaces D/OpenGLRenderer﹕ endAllStagingAnimators on 0x7faaf61e00 (RippleDrawable) with handle 0x7f966ee140 08-07 13:25:46.713 29527-29561/lgalle19.developements.findplaces D/mali_winsys﹕ new_window_surface returns 0x3000, [1440x2560]-format:1 08-07 13:25:46.813 29527-29527/lgalle19.developements.findplaces I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@3d2a49fa time:246458658 

Я также обязательно включил API Google Адресов для Android в консоли разработчика и создаю ключ API, который я храню в манифесте. Тема, размещенная здесь Google PlacePicker закрывается сразу же после запуска Launch похоже на аналогичную проблему, но я уже добавил свой API-ключ к своему манифесту, поэтому моя проблема кажется другой.

Любая помощь очень ценится!

редактировать:

Изменить тег метаданных на

 <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_api_key"/> 

И ссылайтесь на свой ключ api как ресурс, а не на жесткое кодирование

редактировать:

Возьмите ваши разрешения вне вашего тега приложения.

Вложено так:

 <manifest .../> <permission .../> <uses-permission .../> <uses-feature .../> <application ...> <activity .../> </application> </manifest> 

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

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

Вот хороший учебник:

http://code.tutsplus.com/articles/google-play-services-using-the-places-api–cms-23715


Этот вопрос API Google Places для Android Place Picker Не работает, описывает аналогичную проблему, и это ответ дает хорошее руководство по этому поводу.

Убедитесь, что вы включили «Places API для Android», а не только «Places API» в консоли разработчика. «API мест для Android» не будет отображаться в разделе «API и Auth / API», поскольку он не является популярным API (пока). Вам нужно будет найти его, используя поле поиска API.

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

Intereting Posts
Цветной фон с черепицей Связь с клиентским сервером Android Проблемы с ProGuard и AdMob Android-библиотека JUnit Test с Robolectric: java.lang.InstantiationException IllegalStateException: размер представления слишком мал после заполнения Проблема Android Proguard – по-прежнему появляется сообщение об ошибке «java.io.IOException: Can not process class …» при обфускации Socialauth-android получает токен-токен и использует информацию об учетной записи на устройстве Использование fade в анимации для просмотра Приложение для генератора траекторий для Android SharedPreference, установленное в SyncAdapter, не обновлено в Activity? Каков путь "getApplicationContext (). GetFilesDir ()" return? Как получить «сетевое» время (из параметра «Автоматический» под названием «Использовать сетевые значения»), а не время на телефоне? Заголовок Android DialogFragment не отображается Что такое onCreate (Bundle savedInstanceState) Невозможно настроить пользовательский список в ListFragment