3

Impossible d'utiliser l'émulateur Android pour tester les applications instantanées! Chaque fois que je reçois "L'application instantanée de chargement latéral a échoué: l'ensemble de lecture a expiré."L'application instantanée de chargement latéral a échoué: le groupe de lecture a expiré


J'utilise, Android Studio 3.0 Canary-5

Emulator: l'image Nexus 5X fonctionnant sous Android 6.0 (niveau de l'API 23), x86, avec des API Google. API Google Intel système x86 Atom image (Révision 21)

Remarque: Après la mise à jour Android Studio 3.0 (Canary-4> Canary-5) & image système Emulator de révision (20> 21). Je ne parviens pas à exécuter l'application instantanée via l'émulateur. Toujours j'obtiens le message d'erreur disant "l'application instantanée de chargement latéral a échoué: le paquet de lecture a expiré."

com.google.android.gms.persistent E/InstantApps: DomainFilterImpl: Error while reading domain filter from WHAPI 
                       java.util.concurrent.ExecutionException: awjr: INVALID_ARGUMENT: Application credential header not valid. Please fix the client to pass a valid application credential header. 
                        at java.util.concurrent.FutureTask.report(FutureTask.java:94) 
                        at java.util.concurrent.FutureTask.get(FutureTask.java:164) 
                        at tey.get(:com.google.android.gms:1) 
                        at tir.a(:com.google.android.gms:25) 
                        at tir.a(:com.google.android.gms:16) 
                        at tir.a(:com.google.android.gms:9) 
                        at tir.b(:com.google.android.gms:0) 
                        at tio.b(:com.google.android.gms:0) 
                        at com.google.android.gms.instantapps.routing.DomainFilterUpdateChimeraService.a(:com.google.android.gms:14) 
                        at tiu.run(:com.google.android.gms:0) 
                        at lhb.run(:com.google.android.gms:24) 
                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                        at lmc.run(:com.google.android.gms:0) 
                        at java.lang.Thread.run(Thread.java:818) 
                       Caused by: awjr: INVALID_ARGUMENT: Application credential header not valid. Please fix the client to pass a valid application credential header. 
                        at awjn.c(:com.google.android.gms:0) 
                        at lbb.a(:com.google.android.gms:97) 
                        at tem.b(:com.google.android.gms:43) 
                        at tem.a(:com.google.android.gms:0) 
                        at tez.call(:com.google.android.gms:1) 
                        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                        at lhb.run(:com.google.android.gms:24)  
                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
                        at lmc.run(:com.google.android.gms:0)  
                        at java.lang.Thread.run(Thread.java:818)  

    W/ActivityManager: Unable to start service Intent { act=com.google.android.instantapps.devman.iapk.LOAD cmp=com.google.android.instantapps.devman/.iapk.IapkLoadService (has extras) } U=0: not found 

apprécie votre aide.


Mise à jour:

solution Trouvé dans ses notes de version studio Android here. Ceci est un connu sous le numéro sous Android Studio canary-5.

Problème de fiabilité avec la mise en cache de l'application instantanée. Si vous désarchivez manuellement votre appareil ou votre image d'émulateur pour le développement d'une application instantanée, puis déployez l'application instantanée à partir d'Android Studio, le déploiement échouera car Android Studio ne configurera plus votre périphérique/émulateur d'image . Pour contourner ce problème: Accédez à la boîte de dialogue Exécuter la configuration et sélectionnez le module d'application instantanée dans le volet gauche . Cliquez sur la tâche « App Mise à disposition immédiate » sous la rubrique « Avant lancement: Marque Gradle-aware, Mise à disposition App instantanée » Cliquez sur l'édition (l'icône du crayon ) Cochez la case « Effacer provisionnés cache des périphériques »

+0

L'erreur indique que l'en-tête de l'application n'est pas valide. Avez-vous essayé de vérifier cette information d'identification et de la corriger? – Merka

+0

Le même code fonctionnait, avant la mise à jour du studio Android et de l'image du système Emulator. Donc, je ne pense pas problème avec le code –

Répondre

3

L'appareil est considéré comme « déjà provisionné pour les applications instantanées », mais ce n'est pas, probablement parce qu'un autre appareil avec le même numéro de série (même émulateur) a été utilisé avant et modifié ou parce que l'appareil a été modifié en externe (pas par Android Studio). Une solution de contournement consiste à vider le cache avant chaque exécution: Configuration de l'exécution InstantApp -> avant exécution des tâches -> provision pour la tâche d'application instantanée -> modifier -> effacer le cache des périphériques provisionnés.

1

J'ai eu une erreur similaire lors de la construction du projet en utilisant compileSDK 26 et targetSDK 26. Pour en revenir au et supportLibrary 25.4.0 a résolu le problème pour moi.

+0

C'était mon problème aussi. changer les versions compileSdk, targetSdk et supportLibrary à 25, 25 et 25.4.0 a donc résolu le problème :) – karate

1

devman.apk est manquant sous le dossier sdk/extras/google/instantapps/tools/apks/debug. S'il vous plaît sideload manuellement avant de lancer votre application instantanée:

adb install /path/to/android/sdk/extras/google/instantapps/tools/apks/release/devman.apk 
+0

où puis-je obtenir ce "devman.apk"? –

0

Dans mon cas, l'option dans (dans l'émulateur) Paramètres -> Google -> Applications instantanées a été désactivée.
Je l'ai manuellement activé, alors ça a bien fonctionné.