当前位置: 首页 > 知识库问答 >
问题:

如何从根本上修复错误“找不到参数[目录'libs']的方法compile()”?

阎博易
2023-03-14

我在查看了所有类似的问题和答案后发布了这个问题。

以下是我研究的问题。

找不到参数Gradle的方法compile()

Gradle找不到参数的方法compile()

也许,你可能想知道这是一个重复的问题,但在我的情况下,它是不同的。让我们看看情况如何。首先,以下是错误来源的代码段:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile "com.facebook.react:react-native:+"
}

此代码来自文件:node_modules/react-native-Geocoder/android/build.gradle

现在让我向您展示出现了什么错误。

FAILURE: Build failed with an exception.

* Where:
Build file '/Project-root/node_modules/react-native-geocoder/android/build.gradle' line: 19

* What went wrong:
A problem occurred evaluating project ':react-native-geocoder'.
> Could not find method compile() for arguments [directory 'libs'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 26s

所有答案都表明,您需要将compile()方法替换为implementation()方法,因为compile()方法已从gradle 7.0弃用,目前我正在使用gradle 7.4。但众所周知,编辑node\u modules文件夹中的文件不是一个好主意。这是react native项目,发布的包是react native geocoder。我浏览了react native geocoder repo,但它是由其所有者实现的,现在是只读的。所以我不能将PR提交给回购。

https://github.com/devfd/react-native-geocoder

我想讨论一下更明智的答案。解决这个问题的根本答案是什么?非常感谢。

共有1个答案

奚翰海
2023-03-14

react本机地理编码器编译问题:

您可以通过将编译替换为node_modules/react-native-gecoder/android/build.gradle.中的实现来解决此问题

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "com.facebook.react:react-native:+"
}

更改为

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.facebook.react:react-native:+"
}

编译方法已从gradle 4.0中弃用,并从gradle 7.0中完全删除

 类似资料: