Android NDK中止停止,无法创建NDK构建 [英] Android NDK Aborting Stop, Failed to create NDK build

查看:143
本文介绍了Android NDK中止停止,无法创建NDK构建的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

# Copyright (C) 2010 The Android Open Source Project
#
# Licensed 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.
#

# this file is included from prebuilt-shared-library.mk or
# prebuilt-static-library.mk to declare prebuilt library binaries.
#

$(call assert-defined, LOCAL_BUILD_SCRIPT LOCAL_MAKEFILE LOCAL_PREBUILT_PREFIX LOCAL_PREBUILT_SUFFIX)

$(call check-defined-LOCAL_MODULE,$(LOCAL_BUILD_SCRIPT))
$(call check-LOCAL_MODULE,$(LOCAL_MAKEFILE))
$(call check-LOCAL_MODULE_FILENAME)

# Check that LOCAL_SRC_FILES contains only the path to one library
ifneq ($(words $(LOCAL_SRC_FILES)),1)
$(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): The LOCAL_SRC_FILES for a prebuilt library should only contain one item))
$(call __ndk_error,Aborting)
endif

bad_prebuilts := $(filter-out %$(LOCAL_PREBUILT_SUFFIX),$(LOCAL_SRC_FILES))
ifdef bad_prebuilts
$(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): LOCAL_SRC_FILES should point to a file ending with "$(LOCAL_PREBUILT_SUFFIX)")
$(call __ndk_info,The following file is unsupported: $(bad_prebuilts))
$(call __ndk_error,Aborting)
endif

prebuilt_path := $(call local-prebuilt-path,$(LOCAL_SRC_FILES))
prebuilt := $(strip $(wildcard $(prebuilt_path)))

ifndef prebuilt
$(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): LOCAL_SRC_FILES points to a missing file)
$(call __ndk_info,Check that $(prebuilt_path) exists, or that its path is correct)
$(call __ndk_error,Aborting)
endif

# If LOCAL_MODULE_FILENAME is defined, it will be used to name the file
# in the TARGET_OUT directory, and then the installation one. Note that
# it shouldn't have an .a or .so extension nor contain directory separators.
#
# If the variable is not defined, we determine its value from LOCAL_SRC_FILES
#
LOCAL_MODULE_FILENAME := $(strip $(LOCAL_MODULE_FILENAME))
ifndef LOCAL_MODULE_FILENAME
    LOCAL_MODULE_FILENAME := $(notdir $(LOCAL_SRC_FILES))
    LOCAL_MODULE_FILENAME := $(LOCAL_MODULE_FILENAME:%$(LOCAL_PREBUILT_SUFFIX)=%)
endif
$(eval $(call ev-check-module-filename))

# If LOCAL_BUILT_MODULE is not defined, then ensure that the prebuilt is
# copied to TARGET_OUT during the build.
LOCAL_BUILT_MODULE := $(strip $(LOCAL_BUILT_MODULE))
ifndef LOCAL_BUILT_MODULE
  LOCAL_BUILT_MODULE := $(TARGET_OUT)/$(LOCAL_MODULE_FILENAME)$(LOCAL_PREBUILT_SUFFIX)
  LOCAL_OBJECTS      := $(prebuilt)

  $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
endif

LOCAL_OBJS_DIR  := $(TARGET_OBJS)/$(LOCAL_MODULE)
LOCAL_SRC_FILES :=

include $(BUILD_SYSTEM)/build-module.mk

在此prebuilt-library.mk文件中,我收到NDK中止停止错误.该文件在上面给出.这也表明无法构建NDK&NDK构建完成,退出值非零2.

I am getting NDK Aborting Stop error in this prebuilt-library.mk file. The file is given above. It's also showing failed to build NDK & NDK-build finished with non zero exit value 2.

如何解决此错误?

谢谢.

推荐答案

注意:如果您已经创建了项目,然后又通过SDK Tools安装了Android NDK,CMake和LLDB,则您的项目可能无法构建,即您将获得一个进行项目时出错.

Note: If you already created project and after that you are installing Android NDK, CMake and LLDB through SDK Tools then your project might not build i.e you will get an error while Make Project.

请遵循以下步骤:

  1. 安装Android NDK,CMake和LLDB
  2. 在Android中创建新项目,并选中包括C ++支持
  3. 最后启用例外支持&运行时类型信息支持
  4. 按完成.

在应用级别的 build.gradle 文件中.

  • 在您的 apply插件之前添加以下行:...

import org.apache.tools.ant.taskdefs.condition.Os

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def ndkDir = properties.getProperty('ndk.dir')

  • 添加 android -> defaultConfig

    externalNativeBuild {cmake {cppFlags"-frtti -fexceptions"}}

    externalNativeBuild{ cmake{ cppFlags "-frtti -fexceptions" } }

    buildTypes {} 标记

    externalNativeBuild {cmake {路径"CMakeLists.txt"}}任务ndkBuild(type:Exec){如果(Os.isFamily(Os.FAMILY_WINDOWS)){命令行ndkDir +'/ndk-build.cmd','-C',file('src/main').absolutePath} 别的 {命令行ndkDir +'/ndk-build','-C',file('src/main').absolutePath}}

    externalNativeBuild { cmake { path "CMakeLists.txt" } } task ndkBuild(type: Exec) { if (Os.isFamily(Os.FAMILY_WINDOWS)) { commandLine ndkDir + '/ndk-build.cmd', '-C', file('src/main').absolutePath } else { commandLine ndkDir + '/ndk-build', '-C', file('src/main').absolutePath } }

    tasks.withType(JavaCompile){compileTask-> compileTask.dependsOn ndkBuild}

    tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild }

    希望它对您有帮助.!!

    Hope it helps you. !!

    这篇关于Android NDK中止停止,无法创建NDK构建的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆