2014-12-16 12 views
9

Also wir haben Aviary SDK in unserem Projekt für eine lange Zeit verwendet, und keine Probleme aufgetreten. Aber als wir die Aviary-Version auf den neuesten Stand gebracht haben, wurde ein seltsames Verhalten aufgedeckt - wenn Sie die Anwendung mit der neuen Version von Aviary gebündelt auf einem Gerät installieren, das eine Version der App mit der älteren Aviary-Version hat, stürzt die App ab -Aviary SDK Update in Android

FATAL EXCEPTION: IntentService[AviaryCdsService] 
java.lang.IllegalStateException: Missing required api key secret 

zweiten Lauf der installierten App funktioniert wie erwartet, und alle Funktionen funktionieren ordnungsgemäß. Wenn das Gerät noch keine App installiert hat, ist kein Absturz aufgetreten und die Installation läuft einwandfrei. Dieses Verhalten zeigte, wenn sie von com.aviary.android.feather.sdk Migration: Voliere-sdk: 3.4.3.351 zu com.aviary.android.feather.sdk: Voliere-sdk: 3.6.3

Does jemand anderes hatte ein solches Problem, und gibt es irgendeinen Weg, diesen Absturz zu vermeiden?

+2

Wenn jemand das gleiche Problem hat, hat unser Team eine Problemumgehung dafür gefunden - wir fügen diese Codezeilen in der Methode onCreate() unserer Application-Klasse hinzu: Absicht cdsIntent = AviaryIntent.createCdsInitIntent (getBaseContext(), API_SECRET, null) ; startService (cdsIntent); – VanKhulup

+0

mit demselben Problem –

Antwort

0

Ich hatte die gleiche Ausnahme, aber es könnte sein, weil ich innerhalb einer Aktivität AviaryIntent.createCdsInitIntent aufgerufen habe. Sobald ich den Anruf auf AviaryIntent.createCdsInitIntent auf Application verschoben habe, ging diese Ausnahme weg.

0

Die Antwort ist in der Dokumentation.

4.1. Ordner "Assets" Erstellen Sie einen Ordner namens "Vogelhaus" im Ordner "Assets" Ihrer Anwendung. Im Inneren, erstellen Sie eine Datei namens "aviary.txt" - in der ersten Zeile dieser Datei setzen Sie Ihre API-Secret und in der zweiten Zeile setzen Sie Ihre Google Play Billing öffentlichen API-Schlüssel. Diese Datei ist nicht völlig notwendig, aber Sie erhalten eine Warnung, wenn Sie es ausschließen. Wir optimieren das Herunterladen von Inhalten, wenn Ihre App nicht aktiv ist. Überprüfen Sie den Ordner "Assets" der Beispielanwendung für eine Vorlage unter , um dies zu tun.

+1

Bitte fügen Sie einen richtigen Link zur Attribution hinzu und löschen Sie die Formatierung des Angebots. –

+0

Dies ist keine perfekte Lösung –

0

Was passiert, wenn Sie nicht über ein Google für die App-Abrechnung öffentliche API-Schlüssel spielen?

+0

Sie sollten anstelle des Google Play-Abrechnungsschlüssels einfach eine leere Zeichenfolge übergeben können. So funktioniert es im Creative SDK-Bild-Editor. –

2

Erstellen Anwendungsklasse und unterhalb Code in onCreate put() methid

Intent cdsIntent = AviaryIntent.createCdsInitIntent (getBaseContext(), API_SECRET, null); startService (cdsIntent);