3

無法使用Android模擬器測試即時應用程序!每次我得到「側載即時應用程序失敗:讀取包超時。」側載即時應用失敗:閱讀包超時


我使用,的Android 3.0工作室金絲雀-5

模擬器:Nexus 5X保護圖像運行Android 6.0(API等級23),86,與谷歌的API。谷歌的API英特爾86原子系統映像(修訂版21)

注意:從版本(20> 21)更新Android Studio中3.0 (金絲雀-4>加那利-5) & 仿真器系統圖像之後。我無法通過模擬器運行即時應用程序 。總是收到錯誤消息,指出「側載即時應用程序失敗:讀取包超時。」

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 

感謝你的幫助。


更新:

在Android的工作室發行版中發現的解決方案指出here。這是Android Studio Canary-5下的已知問題

即時應用程序配置緩存的可靠性問題。如果您手動 取消設置即時應用開發的設備或模擬器圖像 ,然後從Android Studio部署即時應用,則部署 將失敗,因爲Android Studio不會再次配置您的 設備/模擬器圖像。解決此問題的方法:進入 運行配置對話框,並在 左側窗格中選擇instantapp模塊。點擊下的「即時應用程序規定」任務「 推出之前:搖籃感知製作,即時應用程序規定」點擊編輯(在 鉛筆圖標)選擇「清除調配的設備緩存」

+0

錯誤顯示「應用程序憑據標頭無效」,您是否嘗試檢查此憑據並修復它? – Merka

+0

在更新Android Studio和Emulator系統映像之前,相同的代碼正在工作。所以我不認爲問題代碼 –

回答

3

該設備被視爲「已提供即時應用程序」,但它不是,可能是因爲有相同的序列號(同一個仿真器)其他設備中使用過和修改或因爲設備是外部修改的(不是由Android Studio)。

解決方法是在每次運行前清除緩存: InstantApp運行配置 - >運行任務前 - >爲即時應用程序任務提供 - >編輯 - >清除配置設備緩存。

1

我有一個類似的錯誤當使用compileSDK 26targetSDK 26構建項目時。 回到SDK 25supportLibrary 25.4.0爲我解決了這個問題。

+0

這也是我的問題。更改compileSdk,targetSdk和supportLibrary版本到25,25和25.4.0相應地解決了這個問題:) – karate

1

devman.apksdk/extras/google/instantapps/tools/apks/debug文件夾下缺失。運行您的即時應用程序之前手動請側面插入它:

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

我在哪裏可以得到這個「devman.apk」? –

0

在我的情況下(模擬器中)設置 - >谷歌 - >即時應用程序的選項被禁用。
我手動啓用它,然後它工作正常。