我正在尝试在我的Nexus5(Android 5.1.1)上运行AwesomeProject.
我能够构建项目并将其安装在设备上.但是当我运行它时,我得到一个红色屏幕说
无法下载JS包.您是否忘记启动开发服务器或连接设备?
在本机iOS中,我可以选择离线加载jsbundle.我怎么能为Android做同样的事情?(或者至少,我在哪里可以配置服务器地址?)
react-native start > /dev/null 2>&1 &adb reverse tcp:8081 tcp:8081请查看dsissitka的答案了解更多详情.
android/app/src/maincurl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"请查看kzzzf的答案以获取更多详细信息.
我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以通过更改调试服务器在同一网络中的我的Android设备上运行).
但是,我想构建一个apk,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序.
我看到在文档的iOS部分有一个使用脱机捆绑的部分.但我无法弄清楚如何为Android做同样的事情.这可能吗?如果是这样,怎么样?
更新:关于这个问题的答案(反应原生android无法加载JS包),据说离线包可以从开发服务器下载.但是当我从开发服务器获取捆绑包时,无法加载图像文件.
当我试图通过使用生成android apk时./gradlew installRelease,我在控制台中收到此错误:
~/React-Native/mockingbird/android/app/build/intermediates/res/merged/release/drawable-mdpi-v4/src_resources_img_loading.gif: error: Duplicate file.
~/React-Native/mockingbird/android/app/build/intermediates/res/merged/release/drawable-mdpi/src_resources_img_loading.gif: Original is here. The version qualifier may be implied.
Run Code Online (Sandbox Code Playgroud)
我尝试Build->Clean Project通过Android Studio ./gradlew installRelease再次运行; 它也没用.
此外,我尝试删除该build文件夹,但它也没有帮助.
我试图使用Firebase TestLab,但似乎只能针对资源ID。我有这样的元素:
<Input {...props} testID="usernameIput" />
Run Code Online (Sandbox Code Playgroud)
但是似乎testID没有映射到资源ID。如果这不是做到这一点的方法,那么我如何才能在react-native中访问resource-id?如果我不能在android studio中添加resource-id的方法是什么?
如何获得react-native app的调试版本.对于apk的发布版本,我使用> cd android && ./gradlew assembleRelease.生成的apk将存储在app/build/outputs/apk中.
是否有这样的命令来生成apk的调试版本?请告诉我它存储的路径.
谢谢.
所有文档似乎都认为其中一个处于开发模式并寻求为开发人员设备切换端口或正在进行生产构建!我只是想创建一个appDebug.apk,任何人都可以使用它来运行应用程序,而不会看到有关桥接,事件发射器或AppRegistry等的错误.我不能告诉其他人想要看到React Native应用程序来切换端口等,以及每次我分享应用程序时,我都不想完整发布.有什么建议?
更新:我不想调试应用程序.我只是想发布一个适用于任何人设备的测试版本,以便我可以共享构建以进行测试.
UPDATE: HERE IS MY PROJECT STRUCTURE:under
main-project
-> index.android.js
->gridlew
-> build.properties
->build.gradle
->package.json
-> my-app (App project folder)
-> build->output->apk->release.apk
->src->main->assets
->src->main->res
->src->main->java
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的简单 React Native 应用程序创建原生 Java 包。
我创建了项目react-native init,添加了一些屏幕和react-navigation.
之后,我遵循了吐司模块。
我的手机通过 USB 连接,每个 React 代码都能完美运行,但 Java 代码却没有。
在render()方法的一个屏幕中,我添加了简单的
import React, { Component } from "react"
import { NativeModules } from "react-native"
export default class TestScreen extends Component {
render() {
console.log(NativeModules, NativeModules.ToastModule)
return (
// something
)
}
}
Run Code Online (Sandbox Code Playgroud)
由于这段代码,我得到了 React Native 提供的所有本机模块的对象和undefined我的个人模块的价值。
我去文件android/app/src/main/java/com/myproject/MainApplication.java并将getPackages()方法替换为这个
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList( // Disable all modules for example …Run Code Online (Sandbox Code Playgroud) 考虑一个场景,在这种情况下,我们react-native使用release模式构建应用程序,同时具有如下代码:
let img;
if ( __DEV__ ) {
img = require('./debug-image.png');
} else {
img = require('./real-image.png');
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,都将debug-image.png和real-image.png获得捆绑到APK(即使debug-image.png是从未使用过其他任何地方),还是所述捆绑检测该debug-image.png文件没有使用(不包括成捆)?
我想构建未签名的apk或调试apk。我的应用程序已在本地主机上成功运行。我尝试了不同的方法。但是它显示了错误。我从这里得到了答案。应用命令时
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
Run Code Online (Sandbox Code Playgroud)
它显示错误是
Cannot find entry file index.android.js in any of the roots: ["D:\\workspace\\reactjs\\native\\myapp5"]
Run Code Online (Sandbox Code Playgroud)
然后我将index.android.js更改为App.js
然后它将显示错误是
ENOENT: no such file or directory, open 'D:\workspace\reactjs\native\myapp5\android\app\build\intermediates\assets\debug\index.android.bundle'
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题呢?请帮我。
我的react native版本是react-native-cli:2.0.1,react-native:0.52.0。我发布的根文件夹的屏幕快照。
当我gradlew assembleDebug在android文件夹中运行时,显示错误。
react-native ×10
android ×8
reactjs ×4
apk ×1
assets ×1
babeljs ×1
bundler ×1
java ×1
javascript ×1
preprocessor ×1