1
私はこの問題に関するさまざまな回答を見つけましたが、私にとってはうまくいきませんでした。メソッドの署名がありません:com.android.build.gradle.AppPlugin.getNdkFolder()
エラー:
Gradleの同期に失敗しました:メソッドのシグネチャなし:()値:com.android.build.gradle.AppPlugin.getNdkFolder()は引数の型に適用されていない[]
ビルド.gradleモジュール
apply plugin: 'com.android.application'
import org.apache.tools.ant.taskdefs.condition.Os
android {
compileSdkVersion 21
buildToolsVersion "21"
defaultConfig {
applicationId 'com.domain.game'
minSdkVersion 11
targetSdkVersion 11
ndk {
moduleName "cocos2dcpp_shared"
}
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/libs'
java.srcDirs += '../../Classes'
assets.srcDirs = ['../../Resources']
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
}
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
//def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
if(Os.isFamily(Os.FAMILY_WINDOWS))
commandLine "${ndkDir}\\ndk-build.cmd",'-C', file('src/main/jni').absolutePath, '-j', Runtime.runtime.availableProcessors(), 'all'
else
commandLine "${ndkDir}/ndk-build",'-C', file('src/main/jni').absolutePath, '-j', Runtime.runtime.availableProcessors(), 'all'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
if(Os.isFamily(Os.FAMILY_WINDOWS))
commandLine "${ndkDir}\\ndk-build.cmd",'-C', file('src/main/jni').absolutePath, 'clean'
else
commandLine "${ndkDir}/ndk-build",'-C', file('src/main/jni').absolutePath, 'clean'
}
clean.dependsOn 'cleanNative'
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}
dependencies {
compile project(':googleplayservices_lib')
compile files('libs/OpenIAB-0.9.6-sync2.jar')
compile files('libs/android-support-v4.jar')
compile files('libs/GiftizSDK_1.5.0.jar')
}
build.gradleプロジェクト
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
}
}
allprojects {
repositories {
jcenter()
}
}
gradle-wrapper.properties
#Thu Apr 06 06:38:18 BST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
任意の助けもいただければ幸いです。
おかげ
更新:
local.properties
ndk.dir=C\:\\AndroidEclipse\\android-ndk-r10e
sdk.dir=C\:\\AndroidEclipse\\SDK
それは、この行に失敗しDEF ndkDir = project.plugins.findPlugin( 'com.android.application') .getNdkFolder()
私はすでにこれを試していましたが、最初の "プラグイン"からイベントを検出しませんでした。プラグインが利用可能な[options](https://snag.gy/LYkpqZ.jpg)の一部として存在しないようなものです。 ** android.ndkDirectory **で同じ問題が発生しました。アンドロイドはありますが、ndkDirectoryは – Chelseawillrecover
ではありません@Chelseawillrecover 'android.ndkDirectory'は私のために働きます。 2.3.0と同じgradleバージョンを使用しています。または、以下でこれを試すことができます。 'def androidPluginExtension = project.getExtensions()。getByName("アンドロイド "); //これを使用すると、拡張機能で使用可能なプロパティを簡単に表示できます。 androidPluginExtension.properties.each {オブジェクトキー、オブジェクト値 - > のSystem.out.println( "Extensionprop:$ {キー} $ {値}") }ストリングndkDir2 = androidPluginExtension.getProperties()を取得( "ndkDirectory。 "); System.out.println( "ndkディレクトリを使用する:$ {ndkDir2}"); ' – jiashie