相关疑难解决方法(0)

Android无法加载JS包

我正在尝试在我的Nexus5(Android 5.1.1)上运行AwesomeProject.

我能够构建项目并将其安装在设备上.但是当我运行它时,我得到一个红色屏幕说

无法下载JS包.您是否忘记启动开发服务器或连接设备?

在本机iOS中,我可以选择离线加载jsbundle.我怎么能为Android做同样的事情?(或者至少,我在哪里可以配置服务器地址?)

更新

要使用本地服务器运行,请在react-native项目根目录下运行以下命令

  1. react-native start > /dev/null 2>&1 &
  2. adb reverse tcp:8081 tcp:8081

请查看dsissitka的答案了解更多详情.

要在没有服务器的情况下运行,请通过运行以下命令将jsfile捆绑到apk中:

  1. 在下创建一个资产文件夹 android/app/src/main
  2. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

请查看kzzzf的答案以获取更多详细信息.

android react-native

194
推荐指数
7
解决办法
11万
查看次数

如何生成一个可以在没有带反应原生的服务器的情况下运行的apk?

我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以通过更改调试服务器在同一网络中的我的Android设备上运行).

但是,我想构建一个apk,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序.

我看到在文档的iOS部分有一个使用脱机捆绑的部分.但我无法弄清楚如何为Android做同样的事情.这可能吗?如果是这样,怎么样?

更新:关于这个问题的答案(反应原生android无法加载JS包),据说离线包可以从开发服务器下载.但是当我从开发服务器获取捆绑包时,无法加载图像文件.

javascript android mobile-application react-native

173
推荐指数
17
解决办法
18万
查看次数

生成apk时React Native Android重复文件错误

当我试图通过使用生成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文件夹,但它也没有帮助.

android apk react-native

57
推荐指数
6
解决办法
3万
查看次数

错误:作为参数传递的未编译的PNG文件.必须先编译成.flat文件

在本地反应中,我正在尝试根据他们的指示生成签名的APK .但是当我执行此./gradlew assembleRelease命令时,它会向我显示此错误.错误详情.

我的平台:

  • 操作系统:Windows 10
  • 节点:8.9.1
  • npm:5.5.1
  • 反应:16.3.2
  • 反应原生:0.55

谁能告诉我,为什么我会收到这个错误?

我有一个解决方案在这里加入android.enableAapt2=falseandroid/gradle.properties.显然,我读到这只是一个临时解决方案.没有办法用别人的解决方案来解决它?

android reactjs react-native react-native-android

19
推荐指数
1
解决办法
7429
查看次数

如何在React-Native中向Android添加资源ID

我试图使用Firebase TestLab,但似乎只能针对资源ID。我有这样的元素:

<Input {...props} testID="usernameIput" />
Run Code Online (Sandbox Code Playgroud)

但是似乎testID没有映射到资源ID。如果这不是做到这一点的方法,那么我如何才能在react-native中访问resource-id?如果我不能在android studio中添加resource-id的方法是什么?

android react-native firebase-test-lab

7
推荐指数
2
解决办法
2207
查看次数

React-native debug apk

如何获得react-native app的调试版本.对于apk的发布版本,我使用> cd android && ./gradlew assembleRelease.生成的apk将存储在app/build/outputs/apk中.

是否有这样的命令来生成apk的调试版本?请告诉我它存储的路径.

谢谢.

reactjs react-native

6
推荐指数
1
解决办法
1万
查看次数

React Native - 有一种简单的方法来构建和部署调试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)

android react-native react-native-android

6
推荐指数
1
解决办法
2956
查看次数

在 React Native 中重建原生 Android 代码

我正在尝试为我的简单 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)

java android reactjs react-native react-native-android

6
推荐指数
0
解决办法
2146
查看次数

react-native捆绑程序可以检测未使用的文件吗?

考虑一个场景,在这种情况下,我们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.pngreal-image.png获得捆绑到APK(即使debug-image.png是从未使用过其他任何地方),还是所述捆绑检测该debug-image.png文件没有使用(不包括成捆)?

preprocessor assets bundler babeljs react-native

5
推荐指数
1
解决办法
240
查看次数

如何在React Native中构建调试APK

在此处输入图片说明我想构建未签名的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文件夹中运行时,显示错误。

在此处输入图片说明

android reactjs react-native

4
推荐指数
2
解决办法
6683
查看次数