У меня есть старый классический игровой ледолаз, он работал отлично, но, к сожалению, Google обновил условия, чтобы сделать все приложения targetSdkVersion
как минимум 26.
но я получаю ошибку в logCat:
09-09 15:21:22.934 396-396/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'HUAWEI/KII-L21/HWKII-Q:6.0.1/HUAWEIKII-L21/C185B321:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 9249, tid: 9249, name: XX.XXX:emulator >>> XX.XXX.XXX:emulator <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
09-09 15:21:22.954 396-396/? A/DEBUG: r0 00000000 r1 ac21b450 r2 abb85d00 r3 f355800c
r4 ab2ac2f0 r5 ffa398b4 r6 ac21b450 r7 ffa398b0
r8 abb85d00 r9 ffffffff sl ffa398c0 fp ab2abce0
ip 00000000 sp ffa39868 lr f3553eef pc f3553e3e cpsr 000f0030
09-09 15:21:22.974 396-396/? A/DEBUG: backtrace:
#00 pc 00001e3e /data/app/XXX.XXX.XXX-1/lib/arm/libemu.so
#01 pc 000ead49 /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
#02 pc 000e6651 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
#03 pc 003eb9cf /system/lib/libart.so (art_quick_invoke_stub+170)
#04 pc 007fb9fc [stack]
мой старый код Gradle, который успешно запускает приложение:
apply plugin: 'com.android.application'
android {
compileSdkVersion 14
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "XXX.XXX.XXX"
minSdkVersion 14
targetSdkVersion 9
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
jni.srcDirs = []
}
}
productFlavors {
}
}
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.android.gms:play-services-ads:9.8.0'
api 'com.github.bumptech.glide:glide:3.7.0'
}
мое новое обновление Gradke для поддержки новых условий (таргетинг на API 26):
причина, по которой я добавил 'com.android.application'
, потому что я использовал некоторые методы, устаревшие в новой версии Android.
apply plugin: 'com.android.application'
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 26
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "XXX.XXX.XXX"
minSdkVersion 14
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
jni.srcDirs = []
}
}
productFlavors {
}
}
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.android.gms:play-services-ads:15.0.1'
api 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.android.support:appcompat-v7:26.1.0'
}
некоторая дополнительная информация может помочь:
my app is a classic game that runs nesoid file (game)
in my
jniLibs
folder I've two armeabi foldersarmeabi
andarmeabi-v7a
Я знаю, что вам может понадобиться дополнительная информация, но я не знаю, что нужно для дополнительной помощи.
это то, что отображается при запуске приложения после сбоя приложения
Что ж, трассировка стека указывает на место в вашей библиотеке (libemu.so). Используйте addr2line
или другой инструмент, чтобы узнать, какой строке кода соответствует.
не могли бы вы объяснить поподробнее?
arm-linux-androideabi-addr2line -Cfe libemu.so 00001e3e
(где libemu.so
- развернутая версия библиотеки)
Итак, что вы предлагаете сделать, чтобы получить правильную версию для этого файла и где я могу ее получить?
любая помощь, пожалуйста?
logcat, который вы опубликовали, похоже, не является ошибкой?