Android do Google Lugar Picker trabalhando em APK assinado, mas não funciona no aplicativo ao vivo

votos
1

Tenho uma aplicação em que eu usei Google Lugar Picker. Não é uma questão muito estranho eu estou enfrentando. Quando eu estou criando APK assinado com armazenamento de chaves do meu aplicativo, Lugar Picker está funcionando muito bem. Nesse mesmo APK Eu tenho carregado sobre Google PlayStore. Quando eu venho para abrir esse Picker Coloque-o automaticamente encerradas. Eu já li um monte de comentários online e também aqui no SO. Mas eu não posso determinar por que o seu trabalho bem em assinado APK eo mesmo APK que é sobre o Google PlayStore não está funcionando.

Quando eu verifiquei os logs de aplicação ao vivo do Google PlayStore-lo dando erro como este:

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
}]

Eu já fiz no meu Google Console Developer que minha chave é o mesmo ou não. Eu também verificar o meu SHA que criei de meu arquivo de armazenamento de chaves. E todos são bons (caso contrário ele irá também não funciona em APK assinado se qualquer coisa erros lá).

Aqui está como eu chamar Lugar Picker do meu Atividade

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

Aqui está o meu arquivo AndroidManifest.xml onde eu tenho dar a minha chave de API em dados meta que é a tag aplicação.

<?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>

Há arquivo que eu deletei release / valores / google_maps_api.xml, que é automática gerada. Como já mencionei minha chave API em string.xml, Então eu apaguei este pacote de valores inteiro de pacote de lançamento.

Alguém pode me dizer o que está errado com isso?

Publicado 19/09/2017 em 17:28
usuário
Em outras línguas...                            


1 respostas

votos
4

Após vários dias de investir tempo para encontrar solução deste problema. Finalmente eu tenho a solução. É por causa do Google Play App Assinatura .

Com o Google Play App assinatura: Você assinar seu aplicativo com sua chave de upload. Então, o Google verifica e remove a assinatura de chave upload. Finalmente, re-sinais Google o aplicativo com a chave de assinatura aplicativo original que você forneceu e fornece seu aplicativo para o usuário.

Então, quando eu Criado chave de API para "Google Places API para Android" Eu restringiram essa chave usando o meu nome do pacote e meu SHA-1 de KeyStore Assinado do APK.

Agora que está sob "Carregar certificado" e não é usado, como eu tenho que passar minha App Cantando SHA-1 do certificado para Google Developer Console. E depois de fazer isso do aplicativo ao vivo do meu Google PlayStore Google PlacePicker funcionando bem.digite descrição da imagem aqui

Respondeu 01/10/2017 em 18:15
fonte usuário

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