首页 > 解决方案 > 签名的 React Native 应用程序未正确加载资产

问题描述

因此,我使用 USB 电缆在调试模式下运行应用程序,它工作正常。然后,我使用 USB 电缆运行发布版本,它也可以正常工作,直到我将其与手机断开并重新启动应用程序。该应用程序无法再加载资产。我已经尝试了这里这里引用的所有方法,但仍然没有帮助。

当应用程序无法加载资产时,它会记录以下消息:

[Error: Could not fetch data from url http://localhost:8081/assets/src/assets/modelv2.pb?platform=android&hash=889b05962c1b1b35b1c07a84b98bcc63]
      framesToPop: 1,
      code: 'EUNSPECIFIED',
      line: 17119,
      column: 31,
      sourceURL: 'http://localhost:8081/index.delta?platform=android&dev=true&minify=false' }

因此,这意味着它仍在尝试从已死的本地主机打包程序中获取资产。请帮我!

反应原生:^0.55.4

反应:^16.3.1

index.js

import { AppRegistry } from 'react-native';
import App from './App'; 
AppRegistry.registerComponent('TagMosquito', () => App);

标签: androidreact-nativelocalhostreact-native-androidpackager

解决方案


如果你想创建一个签名的 APK(签名的 apk 用于 Android APK,所以我认为你想创建一个 APK)你首先需要创建一个包。如果你已经创建了它,那么让我知道你使用的命令,也只是分享你的项目结构的屏幕截图,它应该显示你的主索引文件和 android 资产文件夹路径,然后我会给你命令。现在你只是。

如果不使用以下命令。

安卓

react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android /app/src/main/res/

iOS(它自己创建捆绑但如果不是请使用下面的命令)

react-native bundle --entry-file index.js --platform ios --dev false --bundle-output main.jsbundle

请让我知道是否有任何命令不起作用,那么它将需要一些修改。如果它可以工作,您需要检查是否会创建一个名为main.jsbundle的新文件


推荐阅读