Google Android Locul Picker lucrează în Signed APK, dar care nu lucrează în aplicația live

voturi
1

Am o cerere în care am folosit Google Place Picker. Există o chestiune foarte ciudat i sînt cu care se confruntă. Când Creez APK semnat cu keystore aplicația mea, Place Picker funcționează foarte bine. Același APK am încărcat peste Google PlayStore. Când am ajuns pentru a deschide acel loc Picker a închis automat. Am citit deja o mulțime de comentarii on-line și, de asemenea, aici, în SO. Dar eu nu pot determina de ce sale de lucru bine în APK semnat și același fișier APK care este de peste Google PlayStore nu funcționează.

Când am verificat jurnalele de aplicare LIVE Google PlayStore că da eroare de genul:

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

Deja am verificat în Consola pentru dezvoltatori Google care cheia este aceeași sau nu. Am verifica, de asemenea, SHA meu pe care l-am creat din dosarul meu depozit de chei. Și toate sunt bune (altfel se va, de asemenea, nu funcționează în Signed APK dacă nedreptățile nimic acolo).

Iată cum am sunat Locul Picker din activitatea mea

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

Aici este dosarul meu AndroidManifest.xml în cazul în care am da cheia API în datele meta, care este în tag-ul aplicație.

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

Există fișier pe care am șters „de presă / valori / google_maps_api.xml“, care este generat automat. După cum am menționat deja cheia API în string.xml, Așa că am șters acest pachet întreg de valori pachet de eliberare.

Poate cineva spune-mi ce e în neregulă cu asta?

Întrebat 19/09/2017 la 17:28
de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
4

După câteva zile de a investi timp pentru a găsi o soluție a acestei probleme. În cele din urmă am primit soluția. Este din cauza Google Play App de semnare .

Cu Google Play App de semnare: Vă conectați aplicația cu cheia de încărcare. Apoi, Google verifică și elimină semnătura cheie de încărcare. În cele din urmă, Google re-semne app cu originalul cheia de semnare a aplicației pe care ați furnizat și livrează aplicația pentru utilizator.

Așa că, atunci când am creat cheie API pentru „Google Locații API pentru Android“ Am restricționat cheia folosind numele meu și pachetul meu SHA-1 a semnat APK depozitului de chei.

Acum, că este în conformitate cu „Încarcă certificat“ și nu este folosit, așa cum trebuie să treacă meu App Singing certificatului SHA-1 la Consola pentru dezvoltatori Google. Și după ce face aplicația în direct lui meu Google PlayStore Google PlacePicker funcționează bine.introduceți descrierea imaginii aici

Publicat 01/10/2017 la 18:15
sursa de către utilizator

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