Intereting Posts
Открытие ссылки на браузер через уведомление не работает Выполнять запросы с помощью «Дооснащения» внутри пользовательского Runnable Как обновить текст холста, а не перерисовывать холст Android Lollipop recents / многозадачный стиль заголовка, текст всегда черный Удалить приложение Setup Wizard в Android 4+? Держите карту в центре независимо от того, где вы зажимаете масштаб на андроиде Как сохранить состояние фрагмента без стопки в закладке? Разрешить удаленные вызовы ajax в мобильном телефоне Android Webview + jquery Android: FragmentPagerAdapter: метод getItem, вызываемый дважды в первый раз Остановка / уничтожение нити Наложение ActionBar с заполнением GridView или пользовательским GridView для отображения всего первого изображения? Текстовые перестановки, несмотря на -fPIC? Удалить значок местоположения пользователя по умолчанию Сортировка нулевых данных в запросе базы данных Всплывающее окно (с использованием PopupWindow или Dialog) заполняет ширину экрана без видимых причин

Как устранить сбои в системной библиотеке Android (libwebcore.so)

Мой Android-браузер сбой, и ошибка дампа от adb logcat говорит мне, что libwebcore.so – это библиотека, вызывающая ошибку сегментации. Как вы это устраняете?

Мое первоначальное исследование привлекло меня к таким местам, как эта тема: как использовать addr2line в Android , что, по сути, говорит, чтобы получить не раздетую версию библиотеки и использовать утилиту addr2line, чтобы точно определить точную строку, вызывающую ошибку сегментации

В приведенном выше потоке говорится: «Используйте файл .so в obj / local / armeabi, так как это не разделенная версия» … но я не мог найти libwebcore.so где-нибудь в каталоге / usr / local / android-ndk-r6 Или / usr / local / android-sdk-mac_86 на моем Mac, и я нашел только разделенную версию libwebcore.so под / system / lib на устройстве Android.

Есть ли способ, которым я могу взять на себя лишенную свободы версию libwebcore.so? Или я просто не собираюсь делать это правильно?


Для справки, вот свалка ошибки, которая выплевывается с помощью adb logcat:

I/DEBUG ( 65): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG ( 65): Build fingerprint: 'google/passion/passion:2.3.4/GRJ22/121341:user/release-keys' I/DEBUG ( 65): pid: 611, tid: 618 >>> com.swishly.gap <<< I/DEBUG ( 65): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000 I/DEBUG ( 65): r0 00000002 r1 002f9564 r2 00000003 r3 008e79c8 I/DEBUG ( 65): r4 00000000 r5 002f9700 r6 00000000 r7 4470baf4 I/DEBUG ( 65): r8 4470bb64 r9 44520ea8 10 002ae048 fp 00000000 I/DEBUG ( 65): ip 00000000 sp 4470bad0 lr a851857b pc a851838e cpsr 00000030 I/DEBUG ( 65): d0 0061006300000000 d1 0064006500680000 I/DEBUG ( 65): d2 0077007400650000 d3 004c006b00720000 I/DEBUG ( 65): d4 007400610063006f d5 0053006e006f0069 I/DEBUG ( 65): d6 006300720075006f d7 0000000000000065 I/DEBUG ( 65): d8 0000000000000000 d9 0000000000000000 I/DEBUG ( 65): d10 0000000000000000 d11 0000000000000000 I/DEBUG ( 65): d12 0000000000000000 d13 0000000000000000 I/DEBUG ( 65): d14 0000000000000000 d15 0000000000000000 I/DEBUG ( 65): d16 41d39d979893f080 d17 41d39d9b0a07ff06 I/DEBUG ( 65): d18 41106a1000000000 d19 4024000000000000 I/DEBUG ( 65): d20 0000000000000000 d21 0000000000000000 I/DEBUG ( 65): d22 4024000000000000 d23 0000000000000000 I/DEBUG ( 65): d24 0000000000000000 d25 3ff0000000000000 I/DEBUG ( 65): d26 0000000000000000 d27 bff0000000000000 I/DEBUG ( 65): d28 0000000000000000 d29 3ff0000000000000 I/DEBUG ( 65): d30 0000000000000000 d31 3ff0000000000000 I/DEBUG ( 65): scr 20000013 I/DEBUG ( 65): I/DEBUG ( 65): #00 pc 0021838e /system/lib/libwebcore.so I/DEBUG ( 65): #01 pc 00218576 /system/lib/libwebcore.so I/DEBUG ( 65): #02 pc 002186f8 /system/lib/libwebcore.so I/DEBUG ( 65): #03 pc 0021873a /system/lib/libwebcore.so I/DEBUG ( 65): #04 pc 0021875c /system/lib/libwebcore.so I/DEBUG ( 65): #05 pc 0021879a /system/lib/libwebcore.so I/DEBUG ( 65): #06 pc 0021febe /system/lib/libwebcore.so I/DEBUG ( 65): #07 pc 00220df0 /system/lib/libwebcore.so I/DEBUG ( 65): #08 pc 0022147c /system/lib/libwebcore.so I/DEBUG ( 65): #09 pc 00017e34 /system/lib/libdvm.so I/DEBUG ( 65): I/DEBUG ( 65): code around pc: I/DEBUG ( 65): a851836c 602303c2 eb03e002 602003c2 46206063 I/DEBUG ( 65): a851837c bf00bd70 b510680b b1134604 1c426818 I/DEBUG ( 65): a851838c 6820601a f7ff6023 4620fd55 bf00bd10 I/DEBUG ( 65): a851839c 4604b510 fd1ef7ff f6534620 4620fa73 I/DEBUG ( 65): a85183ac bf00bd10 4604b570 460e6cc0 f6acb168 I/DEBUG ( 65): I/DEBUG ( 65): code around lr: I/DEBUG ( 65): a8518558 d10242a5 2600462c 6823e017 f1b3b113 I/DEBUG ( 65): a8518568 d1f83fff e7f33408 1d216878 f7ff1980 I/DEBUG ( 65): a8518578 3408ff03 d00642a5 2b006823 f1b3d0f9 I/DEBUG ( 65): a8518588 d1013fff 462ce7f5 42ac3604 e8bdd1ec I/DEBUG ( 65): a8518598 bf0081f0 b087b5f0 0710f100 4604ae03 I/DEBUG ( 65): I/DEBUG ( 65): stack: I/DEBUG ( 65): 4470ba90 00953a1c I/DEBUG ( 65): 4470ba94 a83da669 /system/lib/libwebcore.so I/DEBUG ( 65): 4470ba98 9de0413c I/DEBUG ( 65): 4470ba9c 00000001 I/DEBUG ( 65): 4470baa0 00953a18 I/DEBUG ( 65): 4470baa4 0000a000 I/DEBUG ( 65): 4470baa8 4470bb64 I/DEBUG ( 65): 4470baac 44520ea8 I/DEBUG ( 65): 4470bab0 002ae048 I/DEBUG ( 65): 4470bab4 afd1362d /system/lib/libc.so I/DEBUG ( 65): 4470bab8 4470baf4 I/DEBUG ( 65): 4470babc 00953a1c 

Вы можете проверить весь проект xkode WebKit вместе со всем проектом с открытым исходным кодом на Android с помощью ссылки Kerubu (я сделал несколько месяцев назад, она занимает несколько гигабайт и часов …) и, возможно, создаст вашу собственную незастроенную .so-библиотеку (I Не), но я сомневаюсь, что это самый простой способ решить эту проблему.

Изменить: выясняется, что андроид отражен на github, вот проект WebCore .

Существует хорошая вероятность того, что ваше приложение намного проще устранить проблему, чем проект WebKit!

Я позволю себе бросить дикую догадку:

Известны ошибки с javascript-инъекцией (также здесь ) для некоторых устройств, которые, похоже, влияют и на некоторую инфраструктуру приложения html (например, PhoneGap), используете ли вы метод addJavascriptInterface ? Если это так, обходной путь, вызывающий WebChromeClient onJsPrompt и синтаксический анализ строки для выполнения собственных вызовов из webview.

Java для javascript:

 webview.loadUrl("javascript:alert('toto');"); 

Javascript для java:

В javascript:

 prompt('this is the message', 'this is the default value'); 

И в java:

 WebChromeClient chromeClient = new WebChromeClient(){ @Override public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, android.webkit.JsPromptResult result){ Log.d("javascriptPrompt", "prompt : "+url+"-"+message); // should log "javascriptPrompt, "prompt: null - this is the message" // parse the message and do whatever you want here result.confirm(); return true; } } webview.setChromeClient(chromeClient); 

Не 100% уверен, но является источником libwebkit.so, который можно найти в Android Open Source Project?