kAy*_*270 131 android apk react-native
因为我是反应原生的新手,所以如果步骤中有任何错误,请告诉我.
我根据文档使用命令构建了一个react native android应用程序
react-native android
在设备上运行时,使用了以下命令
react-native run-android
这给了我在我的projectfolder/android/app/build/outputs/apk中输出的2个apk文件
现在,当我在安装后使用安装这个apk时,它要求开发服务器连接到捆绑JS.但我的要求是,用户不需要为开发服务器而烦恼,只需要安装apk即可完成所有操作.
已经完成了一些stackoverflow问题但没有帮助构建不需要开发服务器的unsigned apk.
你能帮助我找到如何在反应原生中构建和未签名的apk的方法吗?
Dmi*_*mov 207
您需要手动为调试版本创建捆绑包.
捆绑调试版本:
#React-Native 0.59
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res
#React-Native 0.49.0+
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
#React-Native 0-0.49.0
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)
然后在捆绑后构建APK:
$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `android/app/build/outputs/apk`
Run Code Online (Sandbox Code Playgroud)
PS另一种方法可能是修改gradle脚本.
小智 84
请按照这些步骤操作.
捆绑你的js:
如果项目根目录中有index.android.js则运行
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)
如果项目根目录中有index.js则运行
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
Run Code Online (Sandbox Code Playgroud)
创建调试apk:
cd android/
./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
然后你可以在这里找到你的apk:
cd app/build/outputs/apk/
Run Code Online (Sandbox Code Playgroud)
Nha*_*Cao 28
在我看来,在项目目录中运行以下命令.
对于本机旧版本(您将在root中看到index.android.js):
mkdir -p android/app/src/main/assets && rm -rf android/app/build && react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew clean assembleRelease && cd ../
Run Code Online (Sandbox Code Playgroud)
对于本机新版本(您只需在root中看到index.js):
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 clean assembleRelease && cd ../
Run Code Online (Sandbox Code Playgroud)
apk文件将在以下位置生成:
小智 23
在您的根项目目录中
确保您已经有目录android / app / src / main / assets /,如果没有创建目录,则在此之后创建新文件并另存为index.android.bundle
,然后将文件放入android / app / src / main / assets / index.android 。束
在那之后运行这个
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
Run Code Online (Sandbox Code Playgroud)
然后你就可以得到apk
在应用程序/生成/输出/ APK /调试/ APP-debug.apk
Er *_*n G 12
如果您确实想生成一个可以在没有开发服务器的情况下运行的调试 APK (用于测试目的) ,那么恭喜!我来帮助你。:)
每个人都说我们需要运行两个命令,但是生成的 APK 在没有开发服务器的情况下仍然无法工作。经过多次研究和尝试,我发现我们需要更改 gradle 文件(如步骤 2 所示)。只需按照以下步骤操作:react-native bundle ...
gradlew assembleDebug
/android/app/src/main
一个文件夹assets
android > app > build.gradle
project.ext.react = [
...
bundleInDebug: true, // add this line
]
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
cd android
gradlew assembleDebug
这将app-debug.apk
在目录中创建文件android/app/build/outputs/apk/debug
,您可以在没有开发服务器的情况下安装和运行该文件。
从 react-native 0.57 开始,之前提供的答案都不再有效,因为 gradle 期望在其中找到包和资产的目录已更改。
构建调试版本的最简单方法是根本不使用该react-native bundle
命令,而只需修改您的app/build.gradle
文件。
在文件的project.ext.react
地图内app/build.gradle
,添加bundleInDebug: true
条目。如果您希望它不是--dev
构建(没有警告和缩小包),那么您还应该将devDisabledInDebug: true
条目添加到同一个地图中。
如果由于某种原因您需要或想要使用该react-native bundle
命令来创建捆绑包,然后./gradlew assembleDebug
使用捆绑包和资产创建 APK,您必须确保将捆绑包和资产放在正确的路径中,gradle 可以在其中找到他们。
从 react-native 0.57 开始,这些路径
android/app/build/generated/assets/react/debug/index.android.js
用于包
和android/app/build/generated/res/react/debug
资产。因此,用于手动捆绑和使用捆绑包和资产构建 APK 的完整命令是:
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/generated/assets/react/debug/index.android.bundle --assets-dest ./android/app/build/res/react/debug
进而
./gradlew assembleDebug
请注意,gradle 查找包和资产的路径可能会发生变化。要找出这些路径的位置,请查看目录中的react.gradle
文件node_modules/react-native
。以def jsBundleDir =
和开头的行分别def resourcesDir =
指定 gradle 查找包和资产的目录。
小智 9
您可以使用两个扩展来实现此目的。这被添加到react-native中以设置这些:
disableDevInDebug: true
:在调试构建类型中禁用开发服务器bundleInDebug: true
: 添加 jsbundle 来调试 buildType。所以,你的最终project.ext.react
结果android/app/build.gradle
应该如下所示
project.ext.react = [
enableHermes: false, // clean and rebuild if changing
devDisabledInDev: true, // Disable dev server in dev release
bundleInDebug: true, // add bundle to dev apk
]
Run Code Online (Sandbox Code Playgroud)
遵循第一个响应后,您可以使用
react-native run-android --variant=debug
Run Code Online (Sandbox Code Playgroud)
而且您的应用程序无需打包程序即可运行
小智 7
以防万一其他人最近遇到同样的问题,我正在使用 React Native 0.59.8(也使用 RN 0.60 进行测试),并且我可以确认其他一些答案,步骤如下:
卸载设备上安装的应用程序的最新编译版本
跑步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
在 android/app/build/outputs/apk/debug 文件夹中获取 app-debug.apk
祝你好运!
小智 6
可以生成未签名的 apk 版本用于测试目的,以便您可以在手机上运行。
最初我遇到了这里最提到的红屏错误。但我遵循了这里提到的相同内容,它对我有用。
在控制台的工作目录中,运行这四个命令
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
cd android
gradlew assembleDebug
gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)
然后 APK 文件将在以下位置生成: android\app\build\outputs\apk\debug\app-debug.apk
对于 Windows 用户,如果所有步骤都正确遵循:https : //facebook.github.io/react-native/docs/signed-apk-android.html
您只需要运行: gradlew assembleRelease
你的文件将是:
地点: E:\YourProjectName\android\app\build\outputs\apk
聚会已经很晚了,但没有一个解决方案at least on page 1
对我不起作用。因此,我更深入地研究了 React 注册的评分任务;
只需添加bundleInDebug : true
@Er Suman G 的答案即可
运行./gradlew assembleDebug
或gradle.bat assembleDebug
基于您的 android 文件夹中的环境。
这将生成可调试的非服务器所需的应用程序android/app/build/outputs/apk/debug
归档时间: |
|
查看次数: |
116373 次 |
最近记录: |