我一直在尝试将项目导入到 Android Studio,这就是我陷入困境的地方,Stack Overflow 上有类似的问题,但它没有为我的特定错误提供解决方案。
这是我的错误日志:
C:\<some location>\build.gradle
Error:(24, 1) A problem occurred evaluating root project '<project name>'.
> Could not find method android() for arguments [build_4fli1jm76ubcnxesnhqnhie47$_run_closure3@6e71db85] on root project '<project name>'.
Information:BUILD FAILED
Gradle 同步消息是:
错误:(24, 0) 未找到 Gradle DSL 方法:“android()”可能 原因:
项目“PoojaPeople”可能正在使用以下版本 不包含该方法的 Gradle。 Gradle 设置 构建文件 可能缺少 Gradle 插件。申请 Gradle 插件
我不太确定这个方法
android()
到底位于哪里。如果它是位于应用程序的 build.gradle
文件中的文件,我仍然不知道从这里去哪里。任何帮助表示赞赏。
我的
build.gradle
是
buildscript {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
android {
compileSdkVersion 17
buildToolsVersion '23.0.0'
}
dependencies {
compile files('app/libs/junit-4.12-JavaDoc.jar')
}
apply plugin: 'maven'
您使用了错误的
build.gradle
文件。
在您的顶级文件中,您无法定义
android
块。
只需将此部分移动到
module/build.gradle
文件中即可。
android {
compileSdkVersion 17
buildToolsVersion '23.0.0'
}
dependencies {
compile files('app/libs/junit-4.12-JavaDoc.jar')
}
apply plugin: 'maven'
我的问题出在我的app.gradle内部。我搬家的时候就遇到了这个问题
apply plugin: "com.android.application"
从顶线到
线下方apply from:
我将插件切换回顶部和violá
我确切的错误是
Could not find method android() for arguments [dotenv_wke4apph61tdae6bfodqe7sj$_run_closure1@5d9d91a5] on project ':app' of type org.gradle.api.Project.
我的 app.gradle 的顶部现在看起来像这样
project.ext.envConfigFiles = [
debug: ".env",
release: ".env",
anothercustombuild: ".env",
]
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
apply plugin: "com.android.application"
伙计们。之前,当我尝试将 .aar 包导入到我的项目中时,我遇到了同样的问题,不幸的是,在将 .aar 包作为我的项目的模块依赖项之前,我有两个模块(一个关于 ) ROS-ANDROID-CV-BRIDGE,其中之一是 OPENCV-FOR-ANDROID)。所以,当你们见面时我收到了这个错误:
Error:Could not find method android() for arguments [org.ros.gradle_plugins.RosAndroidPlugin$_apply_closure2_closure4@7e550e0e] on project ‘:xxx’ of type org.gradle.api.Project.
所以,当你的项目中有多个模块时,痛苦的 gradle 结构会导致这个问题,更糟糕的是,它们以不同的方式导入或具有不同的类型(.jar/.aar 包或只是 Java 库的项目) 。而让每个子项目中的编译版本、库依赖等配置都与主项目兼容,真是一件头疼的事情。
我解决了我的问题,只需按照以下步骤操作:
① 将.aar包复制到app/libs中。
② 在 app/build.gradle 文件中添加以下内容:
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
③ 将其添加到要应用 .aar 依赖的模块的 add build.gradle 文件中(在我的情况下,只需将其添加到我的 app/build.gradle 文件中):
dependencies {
compile(name:'package_name', ext:'aar')
}
因此,如果可能的话,只需尝试将模块依赖项导出为 .aar 包,然后按照这种方式将其导入到您的主项目中。不管怎样,我希望这是一个很好的建议,如果你和我有同样的情况,可以解决你的问题。
出现此错误是因为编译器在您的项目中找不到“my-upload-key.keystore”文件
生成文件后,您需要将其粘贴到项目的 andorid/app 文件夹中
这对我有用!
在我的例子中,我通过
create-react-native
和react-native run-android
生成项目,有两个build.gradle
文件,分别在./android/build.gradle
和./android/app/build.gradle
。
您需要将
android
设置为 ./android/app/build.gradle
,其中有行 apply plugin: "com.android.application"