因此,我使用USB电缆在调试模式下运行该应用程序,效果很好。然后,我使用USB电缆运行发行版,它也可以正常工作,直到我将其与手机断开连接并重新启动应用程序。该应用程序无法再加载资产。我已经尝试过引用here和here的所有方法,但是仍然没有帮助。
当应用无法加载资产时,它会记录以下消息:
[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);
答案 0 :(得分:0)
如果您要创建一个签名APK(Android APK使用了签名apk,因此我想创建一个APK),则首先需要创建一个包。 如果您已经创建了它,那么请告诉我您所使用的命令,并仅分享您项目结构的屏幕快照,它还应显示您的主索引文件和android资产文件夹路径,然后我将为您提供该命令。现在,你只是。
如果不使用以下命令。
Android
react-native包--entry-file index.js-平台android --dev否--bundle-output ./android/app/src/main/assets/index.android.bundle-资产目标./android/app/src/main/res /
iOS(它会自行创建捆绑包,如果没有,请使用以下命令)
反应本地包--entry-file index.js --platform ios --dev假--bundle-output main.jsbundle
请让我知道是否有任何命令不起作用,则需要进行一些修改。如果可行,则需要检查是否创建了一个名为 main.jsbundle
的新文件。答案 1 :(得分:0)
在这种情况下可以将shrinkResources
设置为false
。如果您在应用程序的shrinkResources
文件中启用了build.gradle
,Gradle可以代表您自动删除未使用的资源。
release {
..
minifyEnabled true
shrinkResources false <-- set this false
proguardFiles getDefaultProguardFile()
}