本机如何禁用android开发模式

Jon*_*ley 17 android react-native

我已经读过,禁用Android中的开发模式可以帮助加快Android模拟器的一些问题,因为它目前没有响应.如何禁用开发模式?我无法在react本机文件中的任何地方找到任何bool值或任何内容.

Nis*_*kar 23

如果您在react-native应用程序(F2或愤怒摇动)中打开菜单并选择开发选项,则可以选择关闭开发模式以及其他选项,如实时重新加载


Ric*_*ang 5

我更喜欢使用简单的 gradle 命令行构建 apk 的方式。我需要使用 bundle react native JS 构建 app-preprod.apk 并关闭其开发模式以从发布版本设置一些不同的 api 主机名设置。

在查看了 google 和 stackoverflow 之后,我最终找到了PROJECT_PATH/android/app/react.gradle,结果发现只有当 android 构建变体名称包含“release”时,react 才会关闭开发模式。

// Set up dev mode
def devEnabled = !targetName.toLowerCase().contains("release")
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
    commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
            "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
} else {
    commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
            "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
}
Run Code Online (Sandbox Code Playgroud)

所以我只是按照我的自定义设置 devInXxx 重构 devEnabled

def devEnabled = config."devIn${targetName}" == false ? false : !targetName.toLowerCase().contains("release")
Run Code Online (Sandbox Code Playgroud)

并将构建类型变体开发模式设置为 false PROJECT_PATH/android/build.gradle

project.ext.react = [
bundleInPreprod: true,
devInPreprod: false]
Run Code Online (Sandbox Code Playgroud)

要清理构建,请删除“PROJECT_PATH/android/app/build”下的所有文件并运行 gradle assemble the build variant only

PROJECT_PATH/android$ ./gradlew assemblePreprod
Run Code Online (Sandbox Code Playgroud)

这将构建 app-preprod.apk,它捆绑了 js 并关闭了开发模式。一般在文件夹下PROJECT_PATH/android/app/build/output/apk/