Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio中的Ndk错误?_Android_Cordova_Android Ndk_Phonegap Plugins_Crosswalk Runtime - Fatal编程技术网

Android Studio中的Ndk错误?

Android Studio中的Ndk错误?,android,cordova,android-ndk,phonegap-plugins,crosswalk-runtime,Android,Cordova,Android Ndk,Phonegap Plugins,Crosswalk Runtime,我正在构建一个phonegap应用程序。我是移动开发的新手。我在项目中添加了crosswalk插件。 添加此项后,我得到的NDK错误是: Error:(186, 0) Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see http://tools.android.com/tech-docs/new-bui

我正在构建一个phonegap应用程序。我是移动开发的新手。我在项目中添加了crosswalk插件。 添加此项后,我得到的NDK错误是:

Error:(186, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
为了解决上述错误,我在项目中添加了gradle.properties文件,并在其中添加了以下内容:

android:useDeprecatedNdk=true
但在此之后,给出了另一个错误,即:

Error:No such property: sourceSets for class: java.lang.String
下面是build.gradle:

/*
       Licensed to the Apache Software Foundation (ASF) under one
       or more contributor license agreements.  See the NOTICE file
       distributed with this work for additional information
       regarding copyright ownership.  The ASF licenses this file
       to you under the Apache License, Version 2.0 (the
       "License"); you may not use this file except in compliance
       with the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing,
       software distributed under the License is distributed on an
       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
       KIND, either express or implied.  See the License for the
       specific language governing permissions and limitations
       under the License.
*/

// GENERATED FILE! DO NOT EDIT!

apply plugin: 'android'

buildscript {
    repositories {
        mavenCentral()
    }

    // Switch the Android Gradle plugin version requirement depending on the
    // installed version of Gradle. This dependency is documented at
    // http://tools.android.com/tech-docs/new-build-system/version-compatibility
    // and https://issues.apache.org/jira/browse/CB-8143
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
   }

// Allow plugins to declare Maven dependencies via build-extras.gradle.
repositories {
    mavenCentral()
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.8'
}

// Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties.
// Refer to: http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html
ext {
    apply from: 'CordovaLib/cordova.gradle'
    // The value for android.compileSdkVersion.
    if (!project.hasProperty('cdvCompileSdkVersion')) {
        cdvCompileSdkVersion = null;
    }
    // The value for android.buildToolsVersion.
    if (!project.hasProperty('cdvBuildToolsVersion')) {
        cdvBuildToolsVersion = null;
    }
    // Sets the versionCode to the given value.
    if (!project.hasProperty('cdvVersionCode')) {
        cdvVersionCode = null
    }
    // Sets the minSdkVersion to the given value.
    if (!project.hasProperty('cdvMinSdkVersion')) {
        cdvMinSdkVersion = null
    }
    // Whether to build architecture-specific APKs.
    if (!project.hasProperty('cdvBuildMultipleApks')) {
        cdvBuildMultipleApks = null
    }
    // .properties files to use for release signing.
    if (!project.hasProperty('cdvReleaseSigningPropertiesFile')) {
        cdvReleaseSigningPropertiesFile = null
    }
    // .properties files to use for debug signing.
    if (!project.hasProperty('cdvDebugSigningPropertiesFile')) {
        cdvDebugSigningPropertiesFile = null
    }
    // Set by build.js script.
    if (!project.hasProperty('cdvBuildArch')) {
        cdvBuildArch = null
    }

    // Plugin gradle extensions can append to this to have code run at the end.
    cdvPluginPostBuildExtras = []
}

// PLUGIN GRADLE EXTENSIONS START
apply from: "cordova-plugin-crosswalk-webview/OP-xwalk.gradle"
// PLUGIN GRADLE EXTENSIONS END

def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
    apply from: 'build-extras.gradle'
}

// Set property defaults after extension .gradle files.
if (ext.cdvCompileSdkVersion == null) {
    ext.cdvCompileSdkVersion = privateHelpers.getProjectTarget()
}
if (ext.cdvBuildToolsVersion == null) {
    ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()
}
if (ext.cdvDebugSigningPropertiesFile == null && file('debug-signing.properties').exists()) {
    ext.cdvDebugSigningPropertiesFile = 'debug-signing.properties'
}
if (ext.cdvReleaseSigningPropertiesFile == null && file('release-signing.properties').exists()) {
    ext.cdvReleaseSigningPropertiesFile = 'release-signing.properties'
}

// Cast to appropriate types.
ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean();
ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? null : Integer.parseInt('' + cdvMinSdkVersion)
ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode)

def computeBuildTargetName(debugBuild) {
    def ret = 'assemble'
    if (cdvBuildMultipleApks && cdvBuildArch) {
        def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch
        ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1);
    }
    return ret + (debugBuild ? 'Debug' : 'Release')
}

// Make cdvBuild a task that depends on the debug/arch-sepecific task.
task cdvBuildDebug
cdvBuildDebug.dependsOn {
    return computeBuildTargetName(true)
}

task cdvBuildRelease
cdvBuildRelease.dependsOn {
    return computeBuildTargetName(false)
}

task cdvPrintProps << {
    println('cdvCompileSdkVersion=' + cdvCompileSdkVersion)
    println('cdvBuildToolsVersion=' + cdvBuildToolsVersion)
    println('cdvVersionCode=' + cdvVersionCode)
    println('cdvMinSdkVersion=' + cdvMinSdkVersion)
    println('cdvBuildMultipleApks=' + cdvBuildMultipleApks)
    println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile)
    println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile)
    println('cdvBuildArch=' + cdvBuildArch)
    println('computedVersionCode=' + android.defaultConfig.versionCode)
    android.productFlavors.each { flavor ->
        println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode)
    }
}

android {
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }
    }


    defaultConfig {
        versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0")
        applicationId privateHelpers.extractStringFromManifest("package")

        if (cdvMinSdkVersion != null) {
            minSdkVersion cdvMinSdkVersion
        }
    }

    lintOptions {
      abortOnError false;
    }

    compileSdkVersion cdvCompileSdkVersion
    buildToolsVersion cdvBuildToolsVersion

    if (Boolean.valueOf(cdvBuildMultipleApks)) {
        productFlavors {
            armv7 {
                versionCode defaultConfig.versionCode + 2
                ndk {
                    abiFilters "armeabi-v7a", ""
                }
            }
            x86 {
                versionCode defaultConfig.versionCode + 4
                ndk {
                    abiFilters "x86", ""
                }
            }
            all {
                ndk {
                    abiFilters "all", ""
                }
            }
        }
    } else if (!cdvVersionCode) {
      def minSdkVersion = cdvMinSdkVersion ?: privateHelpers.extractIntFromManifest("minSdkVersion")
      // Vary versionCode by the two most common API levels:
      // 14 is ICS, which is the lowest API level for many apps.
      // 20 is Lollipop, which is the lowest API level for the updatable system webview.
      if (minSdkVersion >= 20) {
        defaultConfig.versionCode += 9
      } else if (minSdkVersion >= 14) {
        defaultConfig.versionCode += 8
      }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }

    if (cdvReleaseSigningPropertiesFile) {
        signingConfigs {
            release {
                // These must be set or Gradle will complain (even if they are overridden).
                keyAlias = ""
                keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
                storeFile = null
                storePassword = "__unset"
            }
        }
        buildTypes {
            release {
                signingConfig signingConfigs.release
            }
        }
        addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
    }
    if (cdvDebugSigningPropertiesFile) {
        addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    debugCompile project(path: "CordovaLib", configuration: "debug")
    releaseCompile project(path: "CordovaLib", configuration: "release")
    // SUB-PROJECT DEPENDENCIES END
}

def promptForReleaseKeyPassword() {
    if (!cdvReleaseSigningPropertiesFile) {
        return;
    }
    if ('__unset'.equals(android.signingConfigs.release.storePassword)) {
        android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ')
    }
    if ('__unset'.equals(android.signingConfigs.release.keyPassword)) {
        android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: ');
    }
}

gradle.taskGraph.whenReady { taskGraph ->
    taskGraph.getAllTasks().each() { task ->
        if (task.name == 'validateReleaseSigning') {
            promptForReleaseKeyPassword()
        }
    }
}

def addSigningProps(propsFilePath, signingConfig) {
    def propsFile = file(propsFilePath)
    def props = new Properties()
    propsFile.withReader { reader ->
        props.load(reader)
    }

    def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
    if (!storeFile.isAbsolute()) {
        storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
    }
    if (!storeFile.exists()) {
        throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
    }
    signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
    signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
    signingConfig.storeFile = storeFile
    signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
    def storeType = props.get('storeType', props.get('key.store.type', ''))
    if (!storeType) {
        def filename = storeFile.getName().toLowerCase();
        if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
            storeType = 'pkcs12'
        } else {
            storeType = signingConfig.storeType // "jks"
        }
    }
    signingConfig.storeType = storeType
}

for (def func : cdvPluginPostBuildExtras) {
    func()
}

// This can be defined within build-extras.gradle as:
//     ext.postBuildExtras = { ... code here ... }
if (hasProperty('postBuildExtras')) {
    postBuildExtras()
}
/*
授权给Apache软件基金会(ASF)
一个或多个参与者许可协议。见通知文件
与此工作一起分发以获取更多信息
关于版权所有权。ASF许可此文件
根据Apache许可证,版本2.0(
“许可证”);除非符合规定,否则您不得使用此文件
带着执照。您可以通过以下方式获得许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,
根据许可证分发的软件在
“按原样”的基础上,没有任何
种类,无论是明示的还是暗示的。请参阅许可证以获取详细信息
管理权限和限制的特定语言
根据许可证。
*/
//生成的文件!不要编辑!
应用插件:“android”
构建脚本{
存储库{
mavenCentral()
}
//根据需要切换Android Gradle插件版本要求
//已安装的Gradle版本。此依赖项记录在
// http://tools.android.com/tech-docs/new-build-system/version-compatibility
//及https://issues.apache.org/jira/browse/CB-8143
依赖关系{
classpath'com.android.tools.build:gradle:1.5.0'
}
}
//允许插件通过build-extras.gradle声明Maven依赖项。
存储库{
mavenCentral()
}
任务包装器(类型:包装器){
gradleVersion='2.8'
}
//配置属性。通过环境变量、build-extras.gradle或gradle.properties设置这些。
//参考:http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html
分机{
申请者:'CordovaLib/cordova.gradle'
//android.compileSdkVersion的值。
如果(!project.hasProperty('cdvCompileSdkVersion')){
cdvCompileSdkVersion=null;
}
//android.buildToolsVersion的值。
如果(!project.hasProperty('cdvBuildToolsVersion')){
cdvBuildToolsVersion=null;
}
//将versionCode设置为给定值。
如果(!project.hasProperty('cdvVersionCode')){
cdvVersionCode=null
}
//将minSdkVersion设置为给定值。
如果(!project.hasProperty('cdvMinSdkVersion')){
cdvMinSdkVersion=null
}
//是否构建特定于体系结构的APK。
如果(!project.hasProperty('CDVBuildMultipleApps')){
CDVBuildMultipleApps=null
}
//.properties文件以用于发布签名。
如果(!project.hasProperty('cdvreleasesigningproperties文件')){
cdvReleaseSigningPropertiesFile=null
}
//.properties文件以用于调试签名。
如果(!project.hasProperty('cdvDebugSigningPropertiesFile')){
cdvDebugSigningPropertiesFile=null
}
//由build.js脚本设置。
如果(!project.hasProperty('cdvBuildArch')){
cdvBuildArch=null
}
//插件gradle扩展可以附加到该插件,以便在最后运行代码。
cdvPluginPostBuildExtras=[]
}
//插件渐变扩展启动
应用于:“cordova插件人行横道webview/OP xwalk.gradle”
//插件渐变扩展结束
def hasBuildExtras=文件('build-extras.gradle')。存在()
如果(hasBuildExtras){
申请者:'build extras.gradle'
}
//在扩展名.gradle文件后设置属性默认值。
if(ext.cdvCompileSdkVersion==null){
ext.cdvCompileSdkVersion=privateHelpers.getProjectTarget()
}
if(ext.cdvBuildToolsVersion==null){
ext.cdvBuildToolsVersion=privatehelopers.findLatestInstalledBuildTools()
}
如果(ext.cdvDebugSigningPropertiesFile==null&&file('debug-signing.properties')。存在()){
ext.cdvdebugsigningproperties文件='debug signing.properties'
}
如果(ext.cdvReleaseSigningPropertiesFile==null&&file('release-signing.properties')。存在()){
ext.cdvreleasesigningproperties文件='release signing.properties'
}
//转换为适当的类型。
ext.cdvbuildmultipleApps=cdvbuildmultipleApps==null?false:cdvbuildmultipleApps.toBoolean();
ext.cdvMinSdkVersion=cdvMinSdkVersion==null?null:Integer.parseInt(“”+cdvMinSdkVersion)
ext.cdvVersionCode=cdvVersionCode==null?null:Integer.parseInt(“”+cdvVersionCode)
def computeBuildTargetName(调试生成){
def ret=‘汇编’
if(CDVBuildMultipleApps&&cdvBuildArch){
def arch=cdvBuildArch=='arm'?'armv7':cdvBuildArch
ret+=''+arch.toUpperCase().charAt(0)+arch.substring(1);
}
返回ret+(debugBuild?'Debug':'Release')
}
//使cdvBuild成为一个依赖于调试/arch单独任务的任务。
任务cdvBuildDebug
cdvBuildDebug.dependsOn{
返回computeBuildTargetName(true)
}
任务cdvBuildRelease
cdvBuildRelease.dependsOn{
返回computeBuildTargetName(false)
}
任务cdvPrintProps
println('computed'+flavor.name.capitalize()+'VersionCode='+flavor.VersionCode)
}
}
安卓{
源集{
主要{
manifest.src文件“AndroidManifest.xml”
java.srcDirs=['src']
resources.srcDirs=['src']
aidl.srcDirs=['src']
renderscript.srcDirs=['src']
res.srcDirs=['res']
assets.srcDirs=['assets']
jniLibs.srcDirs=['libs']
}
}
默认配置{
versionCode cdvVersionCode?:Integer.parseInt(“+privateHelpers.extractIntFromManifest”(“versionCode”)+“0”)
applicationId privateHelpers.extractStringFromManifest(“包”)
if(cdvMinSdkVersion!=null){
MinSDK版本cdvMinSdkVersion
}
}
林特选项{