无法编译NDK android项目

时间:2015-08-27 00:50:05

标签: android compilation android-ndk

我正在使用android studio并打开hello-jni示例项目。 但是,当我尝试编译项目时,它会提示:

Error:Cause: failed to find target with hash string 'android-23' in: 

/Users/xx/opensource/android-sdk-macosx
<a href="openAndroidSdkManager">Open Android SDK Manager</a>

我安装了android 6.0(api 23)。为什么仍然提示找不到? 我在android stuido的偏好中查找,在android SDK选项卡中,似乎可以找到android 6.0(api level 23 revision 1)。

Belows是我的gradle文件:

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.0"

        defaultConfig.with {
            applicationId = "com.example.hellojni"
            minSdkVersion.apiLevel      = 3
            targetSdkVersion.apiLevel = 23
        }
    }
    /*
     * native build settings
     */
    android.ndk {
        moduleName = "hello-jni"
        /*
         * Other ndk flags configurable here are
         * cppFlags += "-fno-rtti"
         * cppFlags += "-fno-exceptions"
         * ldLibs    = ["android", "log"]
         * stl       = "system"
         */
    }
    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles  += file('proguard-rules.txt')
        }
    }
    android.productFlavors {
        // for detailed abiFilter descriptions, refer to "Supported ABIs" @
        // https://developer.android.com/ndk/guides/abis.html#sa
        create("arm") {
            ndk.abiFilters += "armeabi"
        }
        create("arm7") {
            ndk.abiFilters += "armeabi-v7a"
        }
        create("arm8") {
            ndk.abiFilters += "arm64-v8a"
        }
        create("x86") {
            ndk.abiFilters += "x86"
        }
        create("x86-64") {
            ndk.abiFilters += "x86_64"
        }
        create("mips") {
            ndk.abiFilters += "mips"
        }
        create("mips-64") {
            ndk.abiFilters += "mips64"
        }
        // To include all cpu architectures, leaves abiFilters empty
        create("all")
    }
}

android sdk

2 个答案:

答案 0 :(得分:1)

我刚刚遇到同样的问题,我认为这是一个错误。但我设法使用以下解决方法:

  1. 首先要确保你们都安装了api和build-tools(见下图)

  2. 在build.gradle中,将api的版本和构建工具更改为以前的版本:ie

        android{ compileSdkVersion = 22
        buildToolsVersion = "22.0.1"    
        defaultConfig.with {
            applicationId = "com.sample.teapot"
            minSdkVersion.apiLevel = 11
            targetSdkVersion.apiLevel = 22
        }
    

    }

  3. 成功同步草图

  4. 更改版本

  5. 我也多次重启android studio但不确定是否需要它。

    Don't Forget to install Android SDK Build-tools

答案 1 :(得分:1)

这对我有用:

  • 我在AndroidStudioProjects下的主目录中删除了我正在处理的应用程序

  • 重新启动Android Studio

  • 它提示Android Studio向导,我浏览了Android Studio安装向导,它下载了一些SDK Build-tools 修订版23.0.1。
  • 我在下载Android SDK Build-tools时显示“平台和插件更新”消息时点击了更新链接,进行更新 一些组件。
  • Android安装向导中的“欢迎使用Android Studio”将显示, 单击Configure,它将显示Android SDK Manager提取 一些包如上一个答案所示,点击新建或 更新链接
  • 包装完成后,您可以继续安装 可用的套餐。安装默认选定的软件包后 您可能会获得更多选择。安装Android SDK许可证。您 应选择每个,然后单击接受许可。 Android的 Studio将完成gradle构建过程