android - 为什么在 React Native 中创建的 android 应用程序无法打开?
问题描述
我本月从 Angular 7 切换到 React Native。我对这个迷人框架的主要吸引力在于组件的快速交互(由 babel for jsx 提供支持),这与 Angular 7 中的 .ts 控制的 HTML 模板不同,后者有时需要刷新才能更新图形用户界面。js代码中HTML的能力是这个框架转型的顶峰。
我希望在这里找到我需要的相关帮助。
但是,我正在努力解决使用 Android Studio 从我的 React Native 项目创建 apk 文件的困难。我成功创建了一个签名的 apk,它安装在我的 Techno W2 设备上,没有任何错误;但应用程序没有打开,也没有可见的启动图标。虽然它在设置中已安装的应用程序中列出。安装后,“打开”按钮无效。
对此的任何帮助将不胜感激,因为除非问题得到解决,否则我无法继续我的 React Native 开发。我想在本地创建我的 apk 文件,而不是使用会产生巨大文件大小的 Expo 服务。注意:我的 React Native 项目是由 'expo init project-name' 生成的,然后由 'expoject' 弹出以重新生成 android 和 iOS 目录。
谢谢你。
解决方案
首先我不推荐使用EXPO。不要在 EXPO 中创建项目,而是使用常规方法使用 react-native init YouProject 创建项目
在运行您的项目之前,请确保所有节点模块都已正确设置。
安装节点模块运行npm install --save
react-native run-android
使用for android
react-native run-ios
for iOS运行您的项目
生成未签名 APK 的说明
- 如果有的话,确保你已经删除了以前的构建文件。
- 删除YourProject > android > app > build上的 build 文件夹
- 从终端运行此脚本命令以生成输出 apk。
mkdir -p android/app/src/main/assets && rm -rf android/app/build && react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew assembleDebug
- 从YourProject > android > app > build > outputs > apk > debug获取输出 apk
要获得签名的 apk,请使用此说明
推荐阅读
- javascript - 在任何地方使用 CORS 进行请求时缺少所需的请求标头
- c++ - 模板类中的模板成员函数特化
- python - 在python中计算一致的重复项?
- python - 使用“request.POST.get”从复选框获取多个数据
- ios - 快速的领域,出现错误“表达式类型'()'在没有更多上下文的情况下模棱两可”
- python - 无法使用 lighttpd 运行 django
- php - setrelation 方法在 laravel 中不起作用
- android - 是否可以投射屏幕/应用程序而不是媒体?
- r - 仅在组中它们之间的差异小于“n”的行
- android - android 应用程序中的内部购买