【发布时间】:2019-01-16 16:33:21
【问题描述】:
我将 Android Studio 升级到 3.1.3 , 我还将 ndk 从 15 升级到 17 修订版
我从下面更改了Application.mk中的以下内容
APP_ABI := armeabi
APP_PLATFORM := android-17
到
APP_ABI := armeabi-v7a
APP_PLATFORM := android-17
但现在我开始收到以下错误:
--------- beginning of crash
08-09 14:16:01.783 17582-17582/com.my.app A/libc: Fatal signal 11 (SIGSEGV), code 2, fault addr 0x9eed9b60 in tid 17582 (.my.app)
08-09 14:16:01.848 17602-17602/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-09 14:16:01.849 17602-17602/? A/DEBUG: Build fingerprint: 'motorola/potter_n/potter_n:7.0/NPN25.137-67-5/6:user/release-keys'
Revision: 'p3b0'
ABI: 'arm'
pid: 17582, tid: 17582, name: .my.app >>> com.my.app <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x9eed9b60
r0 00000000 r1 00001000 r2 00000003 r3 00000003
r4 00001000 r5 00000005 r6 9eed9000 r7 9eed9a28
r8 a87f6050 r9 be997688 sl a5fb2000 fp be9974e8
ip 9eed9a28 sp be9974a8 lr 9eed9b60 pc 9eed9b60 cpsr 000f0010
08-09 14:16:01.850 17602-17602/? A/DEBUG: backtrace:
#00 pc 00000b60 /data/app/com.my.app-1/lib/arm/libmyApp.so (offset 0x5000)
可能的问题是什么。我的应用程序使用单独构建的本机库。 NDK 构建是否已停止,仅支持 CMake 构建?
******更新********************************************** ************
编译时使用的本机库出现以下错误
Configuration on demand is an incubating feature.
Incremental java compilation is an incubating feature.
:buildNative
Android NDK: The armeabi ABI is no longer supported. Use armeabi-v7a.
Android NDK: NDK Application 'local' targets unknown ABI(s): armeabi
Android NDK: Please fix the APP_ABI definition in <location to JNI library sources>/jni/Application.mk
make: Entering directory `<location to JNI library sources>/jni'
make: Leaving directory `<location to JNI library sources>/jni'
C:<sdk-location>/sdk/ndk-bundle/build//../build/core/setup-app.mk:79: *** Android NDK: Aborting . Stop.
:buildNative FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':buildNative'.
> Process 'command 'C:<sdk-location>\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd'' finished with non-zero exit value 2
build.gradle 的库是 ;
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
minSdkVersion 18
targetSdkVersion 21
versionName "2"
ndk {
moduleName "jniLibrary"
}
}
}
Application.mk 如下:
APP_ABI := armeabi
APP_PLATFORM := android-18
我必须将我的本机代码导入 CMake 构建系统吗?
【问题讨论】:
-
在你更新 ndk 和 android studio 之前它工作了吗?
-
是的。 ndk-bundle 文件夹中 source.properties 中的版本如下: Pkg.Desc = Android NDK Pkg.Revision = 17.1.4828580
-
正如构建错误所说,
armeabi不再是受支持的 ABI。您可以为armeabi-v7a、arm64-v8a、x86和/或x86_64构建本机库。 -
至于为什么会发生崩溃,我们显然不能根据现有的信息说。您必须尝试调试您的库,例如首先分析你得到的堆栈跟踪。
标签: android android-studio android-ndk