我想在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任务?我如何取回它?
答案 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版本中作为所附屏幕截图。
在通过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)
解决方案很简单
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”文件夹,然后单击“在集成终端中打开”
运行“gradlew 任务”命令。
向下滚动到“安装任务”部分:
该列表将包含您将针对 run-android 命令传递的变体。以“installExperimentalFossDebug”任务为例,变体将是“ExperimentalFossDebug”。
下一步是使用该变体在项目的根目录(而不是在 android 文件夹中)运行“run android”命令。
npx react-native run-android --variant ExperimentalFossDebug
答案 18 :(得分:0)
您必须在 android 目录中运行 gradlew
。
这是一个例子。运行以下命令,它将产生与 OP 提到的相同的输出。
./android/gradlew tasks
然后尝试:
cd android
./gradlew tasks
输出完全不同。我不知道为什么会这样。