Не удалось найти метод externalNativeBuild() для Аргументов

Я пытаюсь интегрировать функциональность ndkBuild в существующий проект Android studio, используя новую Android studio 2.2 , чтобы включить отладку C++ и т. д. я опробовал один из примеров проектов ndk, которые предлагает android studio 2.2, который отлично работает. Однако, когда я пытаюсь запустить команды gradle в своем собственном проекте, я получаю это сообщение об ошибке:

ошибка:(73, 0) не удалось найти метод externalNativeBuild () для Аргументов [build_c6heui1f67l8o1c3ifgpntw6$_run_closure2$_closure9@4329c1c9] в проекте": ядро " типа org.градля.прикладной программный интерфейс.Проект.

следуя этому описанию http://tools.android.com/tech-docs/external-c-builds я закончил с скриптом gradle, который включает в себя следующие команды:

externalNativeBuild{
    ndkBuild{
        path "$projectDir/jni/Android.mk"
    }
}

externalNativeBuild {
    ndkBuild {
      arguments "NDK_APPLICATION_MK:=$projectDir/jni/Application.mk"
      abiFilters "armeabi-v7a", "armeabi","arm64-v8a","x86"
      cppFlags "-frtti -fexceptions"
    }
}

возможно, я пропустил что-то здесь с настройкой проекта? Я установил местоположение Android NDK надлежащим образом в соответствии

Файл - > Структура Проекта ... - >SDK расположение- > Android NDK расположение

в моей студии android.

что-нибудь еще я мог забыть?

кто-нибудь сталкивался с подобной проблемой раньше?

совет был бы очень признателен =)

3 ответов


просто у меня была эта ошибка. В вашем корне build.gradle, убедитесь, что gradle установлен по крайней мере в версии 2.2.0:

Так что вы должны иметь следующее buildscript {...}

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

предложил Кун Минг Xies ответьте, Я разделил мой cmake участие в двух, чтобы избавиться от досадных ошибок:

не удалось найти аргументы метода () для Аргументов [-DREVISION=1.3.1] на объекте типа com.андроид.строить.градля.внутренний.цифровая абонентская линия.CmakeOptions.

первая часть defaultConfig содержит конфигурацию (аргументы командной строки для флагов CMake и C++), а второй содержит путь к CMakeLists.txt:

def revision = "1.3.1"
android {
  compileSdkVersion 25
  buildToolsVersion "25.0.2"

  defaultConfig {
    versionCode = ...
    versionName "${revision}"
    externalNativeBuild {
      cmake {
        arguments "-DREVISION=${revision}"
        cppFlags '-fexceptions', '-frtti', '-std=c++11'
      }
    }
  }

  buildTypes { }

  lintOptions { }

  externalNativeBuild {
    cmake {
      path 'CMakeLists.txt'
    }
  }
}

android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                arguments '-DANDROID_TOOLCHAIN=clang'
            }
        }
    }