即时应用程序无法在发布中运行(即时应用程序启动因未知原因失败(getInstantAppPreLaunchInfo失败))

时间:2017-10-27 13:30:52

标签: java android google-play android-instant-apps

当我点击链接时,Instant App启动器会出现,但在导航到网络版之后。 (IA在Google Play中的制作版本中发布)。

调试版本运行良好。

我的清单文件与谷歌示例完全相同。 (使用我的链接和网站)

App link

我看到了日志并找到了这些行:

  

com.google.android.instantapps.supervisor D /主管:UrlHandler   启动com.google.android.instantapps.supervisor D / AutoManageHelper:   启动AutoManage for client 0 false null   com.google.android.instantapps.supervisor D / AutoManageHelper:onStart   true {0=com.google.android.gms.common.api.internal.zzi$zza@d12b8e9}   com.google.android.instantapps.supervisor E / OptInDirector:即时应用   由于未知原因启动失败(getInstantAppPreLaunchInfo失败    - 检查以前的logcat)com.google.android.instantapps.supervisor E / Supervisor:选择加入已中止。   com.google.android.instantapps.supervisor I / PlayCommon:[38684]   PlayEventLogger.uploadEventsImpl:准备上载日志   com.google.android.instantapps.supervisor W / PlayCommon:[38684]   PlayEventLogger.getAuthToken:没有提供身份验证令牌的帐户   com.google.android.instantapps.supervisor I / PlayCommon:[38684]   PlayEventLogger.uploadLog:连接到服务器:   https://play.googleapis.com/play/log?format=raw&proto_v2=true 10-27   com.google.android.instantapps.supervisor   I / PlayCommon:[38684] PlayEventLogger.handleResponse:成功   上传日志。 com.google.android.instantapps.supervisor I / PlayCommon:   [38684] PlayEventLogger.uploadEventsImpl:准备上载日志   com.google.android.instantapps.supervisor I / PlayCommon:[38684]   PlayEventLogger.uploadEventsImpl:没有文件可以发送   com.google.android.instantapps.supervisor D /主管:强制显示   加载屏幕,因为400毫秒的截止日期已到。   com.google.android.instantapps.supervisor D /主管:UrlHandler   停止

我认为错误出现在这里:

  

即时应用启动因未知原因失败(即时应用启动   由于未知原因失败(getInstantAppPreLaunchInfo失败 -   检查以前的logcat)失败 - 检查以前的logcat)

     

选择中止。

1 个答案:

答案 0 :(得分:0)

此问题的临时解决方法是为每个功能模块配置一个大规模的“保护”程序。

要了解配置proguard时要保留的课程,请执行以下操作:

  1. 将“-whyareyoukeeping class **”添加到您的app / proguard-rules.pro(installed-app module)
  2. 将installed-app的minifyEnabled设置为true
  3. 构建安装的应用程序,然后Gradle控制台将包含有关它保留或不保留的类的信息列表
  4. 将该部分复制到某个编辑器,以便您可以对其进行编辑
  5. 对于每个注意到“保持”或“是图书馆”的课程,这将是一个要保留的课程,即。 “ - keep class some.package.class {*;}” 一个。您还应该能够在会员级进行进一步优化
  6. 在您编制了这些保留的列表后,将它们添加到您的每个功能的proguard-rules.pro
  7. 您可能需要或不需要验证base / proguard-rules.pro使用" -dontobfuscate" (或以某种方式将模糊地图向下游传播到要素)
  8. 现在,您可以使用minifyEnabled构建您的即时应用程序。

    请注意步骤5,编译可能是一个挑战,具体取决于编辑器的优秀程度。工程师演示的一种方法是使用AWK命令替换文本: - awk' / ^ [^] / {cls = $ 1} /是(保留|库)/ {print" -keep class" cls" {*;}" }'

    For more detail and update can you check here.