【问题标题】:Android studio - AndEngine ndk compilation errorAndroid studio - AndEngine ndk 编译错误
【发布时间】:2014-08-04 15:56:47
【问题描述】:

我最近从 Eclipse 迁移到了 Android Studio 而且我不断收到编译错误:

我收到此错误:

 Error:Execution failed for task ':andEngine:compileReleaseNdk'.

com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\Program Files\Android\android-ndk-r10\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\myUser\AndroidstudioProjects\MyApllicationName\andEngine\build\intermediates\ndk\release\Android.mk APP_PLATFORM= android-14 NDK_OUT=C:\Users\myUser\AndroidstudioProjects\MyApllicationName\andEngine\build\intermediates\ndk\release\obj NDK_LIBS_OUT=C:\Users\myUser\AndroidstudioProjects\MyApllicationName\andEngine\build\intermediates\ndk\release\ lib APP_ABI=全部 错误代码: 1

我在“local.propeties”中设置:

sdk.dir=C\:\\Program Files (x86)\\Android\\android-studio\\sdk
ndk.dir=C\:\\Program Files\\Android\\android-ndk-r10

我下载了最近的NDK并放入

C\:\\Program Files\\Android\\android-ndk-r10

我也将它添加到了环境变量中

“ANDROID_NDK”和“NDK_HOME”

我做错了什么? 如何使用 android-studio 编译 AndEngine?

【问题讨论】:

    标签: android android-ndk gradle android-studio andengine


    【解决方案1】:

    对于 Android Studio,NDK 支持是初步的,您的 *.mk 文件将被忽略。

    要解决您遇到的问题,您应该发布有关您的项目结构和 build.gradle 文件内容的更多信息。

    否则,您可以通过设置 Android Studio/gradle 使其工作,以便它通过停用默认 NDK 集成、使其自身调用 ndk-build(.cmd) 并使用标准 libs/ 位置重用您的 *.mk 文件对于 .so 文件集成,如下所示:

    import org.apache.tools.ant.taskdefs.condition.Os
    
    apply plugin: 'android'
    
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.3"
    
        defaultConfig{
            minSdkVersion 15
            targetSdkVersion 19
            versionCode 101
            versionName "1.0.1"
        }
    
        sourceSets.main {
            jniLibs.srcDir 'src/main/libs'
            jni.srcDirs = [] //disable automatic ndk-build call
        }
    
        // call regular ndk-build(.cmd) script from app directory
        task ndkBuild(type: Exec) {
            if (Os.isFamily(Os.FAMILY_WINDOWS)) {
                commandLine 'ndk-build.cmd', '-C', file('src/main').absolutePath
            } else {
                commandLine 'ndk-build', '-C', file('src/main').absolutePath
            }
        }
    
        tasks.withType(JavaCompile) {
            compileTask -> compileTask.dependsOn ndkBuild
        }
    }
    

    【讨论】:

    • 谢谢,我会试一试
    【解决方案2】:

    对于我们的设置,NDK 路径中的空格是问题所在。将 NDK 移动到没有空格的路径为我们解决了问题。

    我们遇到了与错误代码 1 相同的错误,所以我希望它能帮助遇到同样问题的人。

    我们的设置:

  • Gradle 2.1
  • Gradle Android 插件 0.13.2
  • Ndk r10b
  • 【讨论】:

    • 对我来说这件事也解决了。我没有尝试,但用空格双引号也可以解决我猜的问题。
    • 你的意思是 /sdk/ndk-bundle/ndk-build
    猜你喜欢
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2012-01-22
    • 2013-05-19
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多