找不到参数的方法path()

时间:2019-01-13 21:49:27

标签: android android-ndk apk

请有人帮助我,我被困在这里。

apply plugin: 'com.android.application'

android {

compileSdkVersion 26
buildToolsVersion "28.0.3"

defaultConfig {
    applicationId "com.glitchrun.sapphire"
    minSdkVersion 14
    targetSdkVersion 26

    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"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/dagger-1.2.2.jar')
    compile files('libs/javax.inject-1.jar')
    compile files('libs/nineoldandroids-2.4.0.jar')
    compile files('libs/support-v4-19.0.1.jar')
}

这是我的错误,我不知道该怎么办。

Could not find method path() for arguments [C:\Users\costy\AndroidStudioProjects\android\app/jni/Android.mk] on object of type com.android.build.gradle.internal.dsl.ExternalNativeNdkBuildOptions.

我正在尝试导出.apk文件,而卡在了不推荐使用的NDK问题中。现在我陷入了这个问题。

1 个答案:

答案 0 :(得分:0)

指定makefile路径的externalNativeBuild块不应是defaultConfig父级的一部分,而应是android的父级:

android {
    compileSdkVersion 26
    // etc...

    defaultConfig {
        applicationId "com.glitchrun.sapphire"
        // etc...

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

    // etc...

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

内部的一个用于修改ExternalNativeBuildNdkOptions,而外部的一个用于修改NdkBuildOptions