' installDebug'在根项目' android'中找不到反应原生

时间:2016-08-24 09:22:26

标签: android react-native

我想在android模拟器上运行我的项目。当我运行react-native run-android时,我得到以下内容:

FAILURE: Build failed with an exception.

* What went wrong: Task 'installDebug' not found in root project 'android'.

* Try: Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

如果我运行./gradlew tasks,我会:

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'android'.
components - Displays the components produced by root project 'android'. [incubating]
dependencies - Displays all dependencies declared in root project 'android'.
dependencyInsight - Displays the insight into a specific dependency in root project 'android'.
help - Displays a help message.
model - Displays the configuration model of root project 'android'. [incubating]
projects - Displays the sub-projects of root project 'android'.
properties - Displays the properties of root project 'android'.
tasks - Displays the tasks runnable from root project 'android'.

我知道为什么我的项目中没有installDebug任务?我如何取回它?

19 个答案:

答案 0 :(得分:8)

在VS代码中,在react-native init projectname之后running react-native start之后,我在新的本机反应项目(react-native run-android)中遇到了相同的问题。它给出了这个错误

Task 'installDebug' not found in project ':app'.

在RN“ 0.62.1”中

解决方案:- 我打开Android Studio,然后清理并重建。

我不确定清理并重建后是否能正常工作。

我也这样做,并在根项目中给出了sdk路径

export ANDROID_HOME=/home/mycomputer/Android/Sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

然后它起作用。

我的npm版本 6.7.0 我的节点版本 v11.10.1 react-native-cli:2.0.1 react-native:0.62.1

答案 1 :(得分:6)

我也遇到了这个问题,又有一个问题

在此版本中使用了不推荐使用的Gradle,使其与以下版本不兼容 Gradle 7.0。

在Android版本中作为所附屏幕截图。

loop.close

在通过android studio打开android文件夹并由android studio进行构建时,问题已得到解决。之后,运行

npx react-native run-android

,它工作正常。

答案 2 :(得分:5)

我已经解决了这个问题,您只需要在Android文件夹中创建文件

转到android文件夹

创建文件local.properties

然后只需将此代码添加到local.properties文件中:-

如果您使用的是MacBook,则sdk.dir = / Users / USERNAME / Library / android / sdk

如果您使用的是Windows,则sdk.dir = C:\ Users \ USERNAME \ AppData \ Local \ Android \ sdk

如果您使用的是Linux,则sdk.dir = / home / USERNAME / Android / sdk

如果您想知道您的系统USERNAME是什么,那么只需对Mac whoami使用command

然后重新运行命令react-native run-android

谢谢:)

答案 3 :(得分:3)

react-native run-android --variant [productFlavorName] [debug / release]

e.g。 react-native run-android --variant Huaweidebug

答案 4 :(得分:2)

使用android studio打开项目,它将自动修复问题

答案 5 :(得分:1)

以下命令解决了我的问题:

运行-> gradlew:.app:installDebug在./android文件夹中

安装后,运行gradlew任务以列出可用的任务。在那里您可以检查

安装任务

installDebug-安装调试版本。

installDebugAndroidTest-为调试版本安装android(在设备上)测试。

uninstallAll-卸载所有应用程序。

uninstallDebug-卸载调试版本。

uninstallDebugAndroidTest-卸载用于调试版本的android(在设备上)测试。

uninstallRelease-卸载发布版本。

答案 6 :(得分:1)

只需更改此内容,转到此文件夹和文件,

node_modules /反应天然/本地CLI / runAndroid / runAndroid.js

替换installdebug

} else { gradleArgs.push('installDevDebug'); }

答案 7 :(得分:1)

我对本机反应也有同样的问题。最终,您可以按照其他本地文档中的确切环境设置指南来解决此问题。浏览下面URL中的文档。祝好运。 enter link description here

答案 8 :(得分:1)

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.3</version>
                <configuration>
                    <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
                    <webResources>
                        <resource>
                            <directory>${project.build.sourceDirectory}/main/java</directory>
                            <excludes>
                                <exclude>
                                    **/*.java
                                </exclude>
                            </excludes>
                            <targetPath>WEB-INF/classes</targetPath>
                        </resource>
                    </webResources>
                    <archive>
                </configuration>
            </plugin>
        </plugins>

这对我来说是固定的

答案 9 :(得分:0)

用于调试测试

react-native run-android --variant devKernelDebug

原因是因为在android / build.gradle文件中我们有这个

  productFlavors {
    devKernel {
      dimension 'remoteKernel'
    }
    prodKernel {
      dimension 'remoteKernel'
    }
  }

答案 10 :(得分:0)

我正在粘贴代码以显示run-android

的某些可用选项
var _default = {
  name: 'run-android',
  description: 'builds your app and starts it on a connected Android emulator or device',
  func: runAndroid,
  options: [{
    name: '--root [string]',
    description: 'Override the root directory for the android build (which contains the android directory)',
    default: ''
  }, {
    name: '--variant [string]',
    description: "Specify your app's build variant",
    default: 'debug'
  }, {
    name: '--appFolder [string]',
    description: 'Specify a different application folder name for the android source. If not, we assume is "app"',
    default: 'app'
  }, {
    name: '--appId [string]',
    description: 'Specify an applicationId to launch after build.',
    default: ''
  }, {
    name: '--appIdSuffix [string]',
    description: 'Specify an applicationIdSuffix to launch after build.',
    default: ''
  }, {
    name: '--main-activity [string]',
    description: 'Name of the activity to start',
    default: 'MainActivity'
  }, {
    name: '--deviceId [string]',
    description: 'builds your app and starts it on a specific device/simulator with the ' + 'given device id (listed by running "adb devices" on the command line).'
  }, {
    name: '--no-packager',
    description: 'Do not launch packager while building'
  }, {
    name: '--port [number]',
    default: process.env.RCT_METRO_PORT || 8081,
    parse: val => Number(val)
  }, {
    name: '--terminal [string]',
    description: 'Launches the Metro Bundler in a new window using the specified terminal path.',
    default: (0, _cliTools().getDefaultUserTerminal)()
  }, {
    name: '--tasks [list]',
    description: 'Run custom Gradle tasks. By default it\'s "installDebug"',
    parse: val => val.split(',')
  }, {
    name: '--no-jetifier',
    description: 'Do not run "jetifier" – the AndroidX transition tool. By default it runs before Gradle to ease working with libraries that don\'t support AndroidX yet. See more at: https://www.npmjs.com/package/jetifier.',
    default: false
  }]
};

我希望答案会有所帮助

答案 11 :(得分:0)

我知道这是一个老问题,但是以防万一:今天,在一个本机反应项目中遇到了同样的麻烦,请再次检查您的ANDROID_HOME环境变量是否已设置为本地SDK文件夹。

您可以尝试“当地医生”查看正在发生的事情;但这是有道理的:没有ANDROID_HOME,react-native就是不知道要构建什么,因此您将无法运行任何东西。

答案 12 :(得分:0)

从android / app / build.gradle中删除productFlavors代码

答案 13 :(得分:0)

解决方案很简单

  1. 在Android Studio中打开react-native应用程序的android文件夹。
  2. 选择应用程序文件夹,然后单击菜单->构建->重新构建。
  3. 如果它要求更新或一些建议的操作,请全部接受。
  4. 重要提示,修改gradlew.bat文件的权限。为此,请在终端中打开react-native应用程序并运行-
chmod +x android/gradlew.bat 

然后最终运行-

npx react-native start
npx react-native run-android

答案 14 :(得分:0)

以下命令在Linux上为我解决了问题。您应该用自己的Android SDK路径替换class Line: def __init__(self, x1, y1, x2, y2): self.x1, self.y1, self.x2, self.y2 = float(x1), float(y1), float(x2), float(y2) def operation(self, other, op): # Removing the declarations on multiple lines here. return Point(op(self.x1, other.x1), op(self.y1, other.y1), op(self.x2, other.x2), op(self.y2, other.y2)) def __add__(self, other): return self.operation(other, float.__add__) def __sub__(self, other): return self.operation(other, float.__sub__)

~/Android/Sdk

答案 15 :(得分:0)

在Android Studio中为您打开React Native项目的android文件夹,对我来说它是自动生成的

local.properties

其中包含sdk.dir

然后返回您的React Native项目的根目录并运行

yarn android

答案 16 :(得分:0)

我遇到了同样的错误。我刚刚打开VS Code,并在android文件夹中创建了 local.properties 文件,然后添加了sdk.dir=/Users/apple/Library/Android/sdk(不要复制我的文件,您可以找到自己的Android Studio中的sdk路径)。后来,我运行了npx react-native run-android,这解决了我的问题。

答案 17 :(得分:0)

以下步骤对我有用:

右键单击“android”文件夹,然后单击“在集成终端中打开”

enter image description here

运行“gradlew 任务”命令。

enter image description here

向下滚动到“安装任务”部分:

enter image description here

该列表将包含您将针对 run-android 命令传递的变体。以“installExperimentalFossDebug”任务为例,变体将是“ExperimentalFossDebug”。

下一步是使用该变体在项目的根目录(而不是在 android 文件夹中)运行“run android”命令。

npx react-native run-android  --variant ExperimentalFossDebug

enter image description here

按照上述步骤,您将能够在模拟器上运行项目: enter image description here

答案 18 :(得分:0)

您必须在 android 目录中运行 gradlew

这是一个例子。运行以下命令,它将产生与 OP 提到的相同的输出。

./android/gradlew tasks

然后尝试:

cd android
./gradlew tasks

输出完全不同。我不知道为什么会这样。