我在发布模式下编译我的应用程序时遇到问题。这是一个棘手的错误,因为我正在使用NDK为我的应用程序使用C音频编解码器。
它在调试模式下工作正常,我没有问题,但在发布它根本不想编译并签署APK如果我删除我的应用程序的C部分它的工作。
我真的不知道我做错了什么,它似乎来自Makefile和我的C对象的编译。
感谢您的帮助!任何答案都可能有所帮助!告诉我你是否需要其他任何东西。
这是我的代码的错误和部分内容。
忍者:构建已停止:子命令失败 :app:externalNativeBuildRelease FAILED FAILURE:构建因异常而失败。 什么地方出了错: 任务':app:externalNativeBuildRelease'的执行失败。 构建命令失败。 执行进程时出错/Users/lg/Library/Android/sdk/cmake/3.6.3155560/bin/cmake with arguments {--build /Users/lg/projects/remi-android-app/app/.externalNativeBuild/cmake/ release / armeabi --target codec-lib} [1/2]构建C对象CMakeFiles / codec-lib.dir / g722_codec.c.o FAILED:/ Users / lg / Library / Android / sdk / ndk-bundle / toolchains / llvm / prebuilt / darwin-x86_64 / bin / clang --target = armv5te-none-linux-androideabi --gcc-toolchain = / Users / lg / Library / Android / sdk / ndk-bundle / toolchains / arm-linux-androideabi-4.9 / prebuilt / darwin-x86_64 --sysroot = / Users / lg / Library / Android / sdk / ndk-bundle / platforms / android- 18 / arch-arm -Dcodec_lib_EXPORTS -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march = armv5te -mtune = xscale -msoft-float -fno-integrated-as - mthumb -Wa, - noexecstack -Wformat -Werror = format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march = armv5te -mtune = xscale -msoft- float -fno-integrated-as -mthumb -Wa, - noexecstack -Wformat -Werror = format-security -Os -DNDEBUG -Os -DNDEBUG -fPIC -MD -MT CMakeFiles / codec-lib.dir / g722_codec.co -MF CMakeFiles / codec-lib.dir / g722_codec.cod -o CMakeFiles / codec-lib.dir / g722_codec.co -c / Users / lg / projects / remi-android-应用程序/应用程序/ SRC /主/ JNI / g722_codec.c 致命错误:后端错误:无法选择:0x7f7f640d3170:i32 = ARMISD :: SSAT 0x7f7f640bf390,常数:i32< 15> 0x7f7f640bf390:i32 = shl 0x7f7f640be750,常数:i32< 2> 0x7f7f640be750:i32,ch = load%26> 0x7f7f618dfa50,0x7f7f640d35d0,undef:i32 0x7f7f640d35d0:i32 = add 0x7f7f641024a0,Constant:i32< 156> 0x7f7f641024a0:i32,ch = CopyFromReg 0x7f7f631625f0,注册:i32%vreg24 0x7f7f64102d60:i32 =注册%vreg24 0x7f7f640bef30:i32 =常数< 156> 0x7f7f618dff20:i32 = undef 0x7f7f6401bbb0:i32 =常数< 2> 0x7f7f64102ba0:i32 =常数< 15> 在功能:block4l_d clang:错误:clang frontend命令失败,退出代码为70(使用-v查看调用) Android clang版本3.8.275480(基于LLVM 3.8.275480) 目标:armv5te-none-linux-android 线程模型:posix InstalledDir:/ Users / lg / Library / Android / sdk / ndk-bundle / toolchains / llvm / prebuilt / darwin-x86_64 / bin clang:注意:诊断消息:请向http://llvm.org/bugs/提交错误报告,并包括崩溃回溯,预处理源和关联的运行脚本。 clang:注意:诊断消息: 请将以下文件附在BUG报告中: 预处理的源和相关的运行脚本位于: clang:注意:诊断消息:/var/folders/07/4hq2_z0n7215k761dp4v49t00000gn/T/g722_codec-38a769.c clang:注意:诊断消息:/var/folders/07/4hq2_z0n7215k761dp4v49t00000gn/T/g722_codec-38a769.sh clang:注意:诊断消息: 忍者:构建停止:子命令失败。
的build.gradle
apply plugin: 'io.fabric'
buildscript {
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
repositories {
maven { url 'https://maven.fabric.io/public' }
}
}
android {
signingConfigs {
configRelease {
keyAlias 'key0'
keyPassword '******'
storeFile file('/Users/lg/projects/app/keys/key.jks')
storePassword '******'
}
}
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.app.urbanhello"
minSdkVersion 18
targetSdkVersion 25
versionCode 2
versionName "2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
renderscriptSupportModeEnabled true
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
jniDebuggable true
signingConfig signingConfigs.configRelease
}
debug {
minifyEnabled false
versionNameSuffix " Debug"
jniDebuggable true
}
}
externalNativeBuild {
cmake {
path 'src/main/jni/CMakeLists.txt'
}
}
CMakeList.txt
cmake_minimum_required(VERSION 3.4.0)
set(CMAKE_CXX_FLAGS“$ {CMAKE_C_FLAGS} -std = gnu ++ 11”)
add_library(codec-lib
SHARED
codeclibwrapper.c
g722_codec.c)
find_library(编解码器-LIB 日志)
target_link_libraries(编解码器-LIB 安卓
登录
$ {log-lib})