【问题标题】:Android Studio/react-native project: Unable to remove gradle error: Plugin with id 'com.android.library' not foundAndroid Studio/react-native 项目:无法删除 gradle 错误:未找到 ID 为“com.android.library”的插件
【发布时间】:2021-03-18 13:50:51
【问题描述】:

我正在尝试将 OpenCV 功能添加到我的 react-native 项目并遵循相同的在线教程,但我无法解决 gradle 构建错误。

My project structure looks like this

Android gradle 构建文件如下所示:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "29.0.3"
        minSdkVersion = 21
        compileSdkVersion = 29
        targetSdkVersion = 29
        ndkVersion = "20.1.5948944"
    }
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:4.1.0")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

opencv gradle 构建文件为:

apply plugin: 'com.android.library'

def openCVersionName = "4.5.1"
def openCVersionCode = ((4 * 100 + 5) * 100 + 1) * 10 + 0

println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile

android {
    compileSdkVersion 29

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 26

        versionCode openCVersionCode
        versionName openCVersionName

        externalNativeBuild {
            cmake {
                arguments "-DANDROID_STL=c++_shared"
                targets "opencv_jni_shared"
            }
        }
    }

    buildTypes {
        debug {
            packagingOptions {
                doNotStrip '**/*.so'  // controlled by OpenCV CMake scripts
            }
        }
        release {
            packagingOptions {
                doNotStrip '**/*.so'  // controlled by OpenCV CMake scripts
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['native/libs']
            java.srcDirs = ['java/src']
            aidl.srcDirs = ['java/src']
            res.srcDirs = ['java/res']
            manifest.srcFile 'java/AndroidManifest.xml'
        }
    }

    externalNativeBuild {
        cmake {
            path (project.projectDir.toString() + '/libcxx_helper/CMakeLists.txt')
        }
    }
}

dependencies {
}

我检查了 gradle plugin(4.1.0) 和 gradle(6.5) 版本,它们是兼容的。 尝试使用 gradle wrapper(6.5) 和本地 gradle(6.8) 进行构建,但仍然出现相同的错误。

请帮忙

【问题讨论】:

    标签: android react-native android-studio opencv gradle


    【解决方案1】:

    解决了我这边的愚蠢错误。 opencv 模块必须导入到 android 目录而不是根目录中

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 2015-09-05
      • 2022-08-21
      • 2014-08-09
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 1970-01-01
      相关资源
      最近更新 更多