Unsatisfiedlinkerror с обновлением Android 5.0.1
Я использую Android Studio и отлаживаю приложения на HTC One M8. Вчера вечером я обновил телефон до Android 5.0.1.
Изменить: недавно был загружен Nexus 9, и такая же проблема возникает.
В первый раз, когда я попытался запустить приложение, gradle строит без проблем, но теперь я получаю ошибку времени выполнения.
Я исследовал эту проблему, и у других, похоже, возникла неудовлетворенная ошибка ссылки, связанная с расположением библиотек. Однако я не внес изменений в библиотеки или код.
Android Studio также не сможет развернуть отладочную APK, говорящую "Нет изменений APK. Активность не началась, ее текущая задача была перенесена на фронт, несмотря на определенные изменения APK.
Почему я получаю эту ошибку? Спасибо за ваше время.
compileSdkVersion 21
buildToolsVersion "21.1.2"
minSdkVersion 15
targetSdkVersion 21
Gradle ниже.
02-05 10:56:30.330 6516-6524/? E/cutils-trace﹕ Error opening trace file: No such file or directory (2)
02-05 10:56:30.410 6516-6527/? E/art﹕ No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Ljava_lang_String_2)
02-05 10:56:30.490 6516-6516/? A/art﹕ art/runtime/thread.cc:1116] No pending exception expected: java.lang.UnsatisfiedLinkError: com.htc.customization.HtcCustomizationManager
02-05 10:56:30.490 6516-6516/? A/art﹕ art/runtime/thread.cc:1116] at boolean android.database.sqlite.SQLiteConnection.supportServo() (SQLiteConnection.java:1851)
02-05 10:56:30.490 6516-6516/? A/art﹕ art/runtime/thread.cc:1116] at void android.database.sqlite.SQLiteConnection.<clinit>() (SQLiteConnection.java:1541)
02-05 10:56:30.490 6516-6516/? A/art﹕ art/runtime/thread.cc:1116]
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] Runtime aborting...
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] Aborting thread:
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] "main" prio=5 tid=1 Runnable
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | group="" sCount=0 dsCount=0 obj=0x75e28080 self=0xb7a902a0
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | sysTid=6516 nice=0 cgrp=apps/bg_non_interactive sched=0/0 handle=0xb6f24058
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | state=R schedstat=( 0 0 0 ) utm=16 stm=6 core=3 HZ=100
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | stack=0xbe4ad000-0xbe4af000 stackSize=8MB
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | held mutexes= "abort lock" "mutator lock"(shared held)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #00 pc 00004828 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #01 pc 00002ec5 /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #02 pc 0024441d /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+68)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #03 pc 002277eb /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+394)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #04 pc 0021a58f /system/lib/libart.so (art::AbortState::DumpThread(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*)+22)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #05 pc 0021a7cd /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+324)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #06 pc 0021a9c1 /system/lib/libart.so (art::Runtime::Abort()+72)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #07 pc 000a5dbf /system/lib/libart.so (art::LogMessage::~LogMessage()+1322)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #08 pc 0022821f /system/lib/libart.so (art::Thread::AssertNoPendingException() const+374)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #09 pc 000d10b7 /system/lib/libart.so (art::ClassLinker::FindClass(art::Thread*, char const*, art::Handle<art::mirror::ClassLoader>)+30)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #10 pc 001cf97f /system/lib/libart.so (art::JNI::FindClass(_JNIEnv*, char const*)+798)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #11 pc 0005d02b /system/lib/libandroid_runtime.so (???)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #12 pc 00073f87 /system/lib/libandroid_runtime.so (android::register_android_database_SQLiteConnection(_JNIEnv*)+278)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #13 pc 0005cf29 /system/lib/libandroid_runtime.so (???)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #14 pc 0005e131 /system/lib/libandroid_runtime.so (android::AndroidRuntime::startReg(_JNIEnv*)+28)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #15 pc 0005e289 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&)+304)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #16 pc 00001691 /system/bin/app_process32 (???)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #17 pc 0000f31d /system/lib/libc.so (__libc_init+44)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #18 pc 000017ac /system/bin/app_process32 (???)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] (no managed stack frames)
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] Pending exception java.lang.UnsatisfiedLinkError thrown by 'unknown throw location'
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] java.lang.UnsatisfiedLinkError: com.htc.customization.HtcCustomizationManager
02-05 10:56:30.570 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] at boolean android.database.sqlite.SQLiteConnection.supportServo() (SQLiteConnection.java:1851)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] at void android.database.sqlite.SQLiteConnection.<clinit>() (SQLiteConnection.java:1541)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] Dumping all threads without appropriate locks held: thread list lock
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] All threads:
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] DALVIK THREADS (11):
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] "main" prio=5 tid=1 Runnable
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | group="" sCount=0 dsCount=0 obj=0x75e28080 self=0xb7a902a0
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | sysTid=6516 nice=0 cgrp=apps/bg_non_interactive sched=0/0 handle=0xb6f24058
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | state=R schedstat=( 0 0 0 ) utm=17 stm=6 core=3 HZ=100
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | stack=0xbe4ad000-0xbe4af000 stackSize=8MB
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] | held mutexes= "abort lock" "mutator lock"(shared held)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #00 pc 00004828 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #01 pc 00002ec5 /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #02 pc 0024441d /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+68)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #03 pc 002277eb /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+394)
... и еще много таких строк... затем...
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] native: #05 pc 000003d3 /data/dalvik-cache/arm/[email protected]@boot.oat (Java_java_lang_Object_wait__+82)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] at java.lang.Object.wait!(Native method)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] - waiting on <0x25853498> (a java.lang.Daemons$GCDaemon)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] at java.lang.Daemons$GCDaemon.run(Daemons.java:396)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] - locked <0x25853498> (a java.lang.Daemons$GCDaemon)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284] at java.lang.Thread.run(Thread.java:818)
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284]
02-05 10:56:30.580 6516-6516/? A/art﹕ art/runtime/runtime.cc:284]
02-05 10:56:30.580 6516-6516/? A/libc﹕ Fatal signal 6 (SIGABRT), code -6 in tid 6516 (main)
02-05 10:56:30.690 478-478/? E/DEBUG﹕ AM write failure (32 / Broken pipe)
02-05 10:56:31.050 1009-6279/? E/SharedPreferencesImpl﹕ Couldn't create directory for SharedPreferences file shared_prefs/log_files.xml
Вот мой файл gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.xxx.xxx"
minSdkVersion 15
targetSdkVersion 21
versionCode 14
versionName "0.2.9.1"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-xxx-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
repositories {
maven {
url "https://repo.commonsware.com.s3.amazonaws.com"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'joda-time:joda-time:2.7'
compile 'au.com.bytecode:opencsv:2.4'
compile 'uk.co.chrisjenx:calligraphy:2.0.1'
compile 'com.commonsware.cwac:wakeful:1.0.+'
}
Ответы
Ответ 1
Я бы рекомендовал следующую структуру
|---lib/
|---armeabi/
/Your.so file/
|---armeabi-v7a
/Your.so file (same file copy here)/
Если ваша файловая структура, как указано выше,
Попробуйте добавить код ниже в свой gradle файл
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
Я сталкиваюсь с такой же проблемой при использовании API биометрических датчиков в Lollipop, много раз искал много, и у меня появилась папка armeabi-v7a в качестве решения для меня.
Если выше не решена ваша проблема,
Эта проблема связана с ОС Android этого устройства, так или иначе она не может вызвать родную библиотеку,
GitHub вместо решения перенесено в следующий
Группа Google предлагает несколько альтернативных решений
Ответ 2
Как показывают все журналы, это ошибка HTC Sense. То, как Android Studio развертывает новую отладочную APK, похоже, вызывает эту ошибку. Этот пост предполагает, что альтернативная пусковая установка может облегчить проблему.