首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序中心- Android发布在启动时崩溃

应用程序中心- Android发布在启动时崩溃
EN

Stack Overflow用户
提问于 2021-11-09 07:09:46
回答 1查看 1.7K关注 0票数 3

问题发生时,部署一个反应-本机应用程序通过应用程序中心-没有崩溃时,在本地执行gradlew assembleRelease

IOS构建、部署和运行并成功构建。

安卓系统成功通过,但当我安装应用程序时,它会在启动时崩溃。

当我检查logcat时,我看到了下面的错误--它似乎是一个调试版本(我提到了metro),但我不确定。

有什么问题吗?

2021-11-09 08:54:36.227 21255-21326/?E/未知:反应本机: ReactInstanceManager.createReactContext: mJSIModulePackage空2021-11-09 08:54:36.227 898-898/?E/libc:拒绝访问查找属性"ro.hardware.fp.fod“2021-11-09 08:54:36.228 898-898/?E/libc:拒绝访问查找属性"ro.hardware.fp.sideCap“2021-11-09 08:54:36.229 21255-21326/?E/未知:DisabledDevSupportManager:捕捉异常java.lang.RuntimeException:无法加载脚本。请确保您正在运行一个Metro服务器(运行‘react本机启动’),或者您的包'index.android.bundle‘已经正确打包以供发布。( com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native方法)在com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:234),com.facebook.react.bridge.JSBundleLoader$1.loadScript(JSBundleLoader.java:29),com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:258),com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1293),com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java:131),com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1016在java.lang.Thread.run(Thread.java:919) - 2021-11-09 :54:36.229 21255-21326/?E/AndroidRuntime:致命异常: create_react_context进程: com.toluna.webservice,PID: 21255 java.lang.RuntimeException:无法加载脚本。确保您正在运行一个Metro服务器(运行‘Reactive-本机启动’)或 您的包'index.android.bundle‘已正确打包以供发布。( com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native方法)在com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:234),com.facebook.react.bridge.JSBundleLoader$1.loadScript(JSBundleLoader.java:29),com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:258),com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1293),com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java:131),com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1016在java.lang.Thread.run(Thread.java:919)

EN

回答 1

Stack Overflow用户

发布于 2021-11-10 09:17:12

终于解决了。这似乎是一个反应本机0.63.3的问题,而不是应用程序中心的问题。

在执行以下操作时:

代码语言:javascript
复制
gradlew clean
gradlew assembleRelease // or other variant

此问题是生成成功传递,但index.android.bundle文件未在apk中创建。

要检查您是否可以这样做:

代码语言:javascript
复制
1. unzip [APK_FILE] -d [directory] 
2. Go to assets directory and look for index.android.bundle file.

只有在再次跑步之后:

代码语言:javascript
复制
gradlew assembleRelease // or other variant

我们在apk中获取index.android.bundle文件

它似乎有一个任务订单问题-用这个线程解决了。

通过添加到应用程序/build.gradle中:

代码语言:javascript
复制
// Fix for bundle not getting included in APK or AAB with android gradle plugin 4+
// Seems like there's a React-Native bug - task ordering issue and the assets get computed before the bundle is copied
// This forces the copy task to run before merge resources
// This should be fixed and removed starting with RN 0.63.4.
// Relevant thread: https://github.com/facebook/react-native/issues/29398#issuecomment-724350920
project.afterEvaluate {
  def isAndroidLibrary = plugins.hasPlugin("com.android.library")
  def variants = isAndroidLibrary ? android.libraryVariants : android.applicationVariants
  variants.all { def variant ->
    def targetName = variant.name.capitalize()
    def mergeResourcesTask = tasks.findByName("merge${targetName}Resources")
    def assetsCopyTask = tasks.findByName("copy${targetName}BundledJs")
    mergeResourcesTask.dependsOn(assetsCopyTask)
    logger.warn("Making task ${mergeResourcesTask} depend on ${assetsCopyTask}")
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69894091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档