0

因此,我使用 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);
4

2 回答 2

0

如果你想创建一个签名的 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的新文件

于 2019-01-17T10:05:26.853 回答
0

在这种情况下设置shrinkResourcesfalse将起作用。shrinkResources如果您在应用程序build.gradle文件中启用,Gradle 可以代表您自动删除资源(未使用) 。

release {
            ..
            minifyEnabled true
            shrinkResources false    <-- set this false
            proguardFiles getDefaultProguardFile()
        }
于 2019-10-13T19:41:40.667 回答