【问题标题】:Can't compile NDK android project无法编译 NDK android 项目
【发布时间】:2015-08-27 00:50:04
【问题描述】:

我正在使用 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)。

以下是我的 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 compilation android-ndk


    【解决方案1】:

    这对我有用:

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

    • 重新启动 Android Studio

    • 提示Android Studio Wizard,我通过了Android Studio Setup Wizard 下载了一些 SDK Build-tools 修订版 23.0.1。
    • 在下载 Android SDK Build-tools 时出现“平台和插件更新”消息时,我还点击了更新链接,以进行更新 一些组件。
    • Android 设置向导中的“Welcome to Android Studio”将出现, 单击配置,它将显示 Android SDK 管理器正在获取 一些包如上一个答案所示,点击新建或 更新链接
    • 一旦包完成加载,您可以继续安装 可用的软件包。安装默认选择的包后 你可能会得到更多被选中的东西。安装 Android SDK 许可证。你 应该选择每一个,然后单击接受许可证。安卓 Studio 将完成一个 gradle 构建过程

    【讨论】:

    • +1。我花了几个小时试图修复它……结果,这些项目中也包含 Gradle 文件!我复制了我的源代码,删除了整个项目,创建了一个新项目,并粘贴了旧代码。 Gradle 已同步!感谢这个简单的解决方案...
    【解决方案2】:

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

    1. 首先确保你安装了 api 和构建工具(见下图)

    2. 与 build.gradle 相比,将 api 和构建工具的版本更改为以前的版本:即

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

      }

    3. 同步gradle成功

    4. 改回版本

    我也多次重启了android studio,但不确定是否需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-12
      • 2022-01-15
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      相关资源
      最近更新 更多