Android Google Место Выбор работы в Signed APK, но не работает в реальном маштабе времени приложения

голоса
1

У меня есть приложение, в котором я использовал Google Place Picker. Существует очень странный вопрос, я столкнулся. Когда я создаю подписанный APK с моего хранилища ключей приложения, Place Picker работает очень хорошо. То же APK я загрузил через Google PlayStore. Когда я пришел, чтобы открыть то место Picker он автоматически закрывается вниз. Я уже прочитал много комментариев в Интернете, а также здесь в SO. Но я не могу определить, почему его хорошо работает в подписанном APK и тот же APK, который через Google PlayStore не работает.

Когда я проверил журналы ЖИВОГО приложения Google PlayStore он дает ошибку, как это:

Volley : [198] BasicNetwork.performRequest: Unexpected response code 403
for https: //www.googleapis.com/placesandroid/v1/search?key=MY_KEY/ ? V / ConnectivityManager : isActiveNetworkMetered() returns: true
/ ? E / AsyncOperation : serviceID = 65, operation = SearchPlaces
OperationException[Status {
 statusCode = PLACES_API_INVALID_APP, resolution = null
}]

Я уже проверил в моей консоли разработчика Google, что мой ключ является одинаковым или нет. Я также проверить мой алгоритм SHA, который я создал из моего файла хранилища. И все хорошо (В противном случае это будет также не работает в Signed APK если что неправды там).

Вот как звонит Место Picker от моей деятельности

int PLACE_PICKER_REQUEST = 999;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);

Вот мой файл AndroidManifest.xml, где я есть дать мой ключ API в мета-данных, которые в прикладной тег.

<?xml version=1.0 encoding=utf-8?>
<manifest xmlns:android=http://schemas.android.com/apk/res/android
    package=com.example >
    // ALL PERMISSIONS ARE HERE
    <application
        android:allowBackup=true
        android:[email protected]/ic_launcher
        android:[email protected]/app_name
        android:[email protected]/AppTheme >
        <activity
            android:name=.MainActivity
            android:[email protected]/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:[email protected]/MY_KEY />
    </application>
</manifest>

Существует файл, который я удалил «релиз / значение / google_maps_api.xml», который является автоматическим генерироваться. Как я уже упоминал мой ключ API в string.xml, поэтому я удалил весь этот пакет из значений пакета выпуска.

Может кто-нибудь сказать мне, что случилось с этим?

Задан 19/09/2017 в 17:28
пользователем
На других языках...                            


1 ответов

голоса
4

После нескольких дней затрат времени для нахождения решения этой проблемы. Наконец -то я получил решение. Именно из - за Google Play App подписания .

С Google Play App Подписание: Вы подписываете приложение с ключом от загрузки. Затем, Google проверяет и удаляет подписи ключа загрузки. Наконец, Google повторно подписывает приложение с оригинальным ключом приложения подписи вы предоставили и обеспечивает приложение к пользователю.

Поэтому, когда я создал ключ API для «Google Places API для Android» Я ограничил этот ключ, используя мое имя пакета и мой SHA-1 из KeyStore ПОДПИСАЛИ APK в.

Теперь, под «Загрузка сертификата» и он не используется, так как я должен передать мое приложение Singing SHA-1 сертификата в консоли Google Developer. И после того, как делать это жить приложение в моем Google PlayStore в Google PlacePicker работает хорошо.введите описание изображения здесь

Ответил 01/10/2017 в 18:15
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more