2017-04-06 4 views
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()

答えて

1

plugins.getPlugin('com.android.application').sdkHandler.ndkFolderまたは代わりに

+0

私はすでにこれを試していましたが、最初の "プラグイン"からイベントを検出しませんでした。プラグインが利用可能な[options](https://snag.gy/LYkpqZ.jpg)の一部として存在しないようなものです。 ** android.ndkDirectory **で同じ問題が発生しました。アンドロイドはありますが、ndkDirectoryは – Chelseawillrecover

+1

ではありません@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

関連する問題