Error "ABI no admitido" en Chrome Webview
He compilado, instalado y ejecutado correctamente mi webview personalizada, basada en cromo 46 (etiqueta 46.0.2490.71) siguiendo estas instrucciones:
Https://www.chromium.org/developers/how-tos/android-build-instructions
- Inyección de puente Javascript en WebView
- ¿Pasar la URL de WebView a ShareActionProvider?
- ¿Qué hace stopLoading () realmente hacer?
- Phonegap Media API (Android) - El soporte no está definido
- Rendimiento del androide Sencha Touch 2
Y construyó el objetivo ninja "system_webview_apk".
Y funciona muy bien!
Ahora estoy intentando integrarlo en mi imagen de encargo del androide basada en lolipop 5.1.1_r29 construido de AOSP. Los pasos de compilación e instalación funcionan, pero cuando una aplicación intenta inflar la vista web, tengo el siguiente error:
E/AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Unsupported ABI: null at dalvik.system.VMRuntime.getInstructionSet(VMRuntime.java:324) at dalvik.system.VMRuntime.is64BitAbi(VMRuntime.java:337) at android.webkit.WebViewFactory.getWebViewNativeLibraryPaths(WebViewFactory.java:286)
(Traza de pila completa al final del post)
Lo extraño es que, si tomo exactamente el mismo APK, y lo instalo con ADB:
adb shell stop adb pull /system/app/webview/webview.apk adb shell rm -rf /system/app/webview/ adb shell start adb install webview.apk
A continuación, el error desaparece y la webview aparece correctamente.
A continuación, si vuelvo a ponerlo en / system / app:
adb uninstall com.android.webview adb push webview.apk /system/app/webview/webview.apk adb shell stop adb shell start
Se falla de nuevo con el mismo error.
Mi investigación sobre el "ABI no admitido: null" sólo me dio esto: https://code.google.com/p/chromium/issues/detail?id=559720
Pero no parece relacionado.
Necesito la webview basada en cromo 46 (al menos) en Android 5.1.1.
Cualquier ayuda, pista o sugerencia será apreciada 🙂
Algunos datos adicionales:
En el nexo 6:
root@shamu:/ # ll /system/lib/libwebv* -rw-r--r-- root root 31282132 2008-04-15 23:40 libwebviewchromium.so -rw-r--r-- root root 5376 2015-12-09 15:51 libwebviewchromium_loader.so -rw-r--r-- root root 9532 2015-12-09 15:51 libwebviewchromium_plat_support.so
Configuración de la construcción del cromo:
$ cat chromium.gyp_env { 'GYP_DEFINES': 'target_arch=arm OS=android', } $ cat .gclient solutions = [ { "name" : "src", "url" : "https://chromium.googlesource.com/chromium/src.git", "deps_file" : "DEPS", "managed" : False, "custom_deps" : { }, "safesync_url": "", }, ] cache_dir = None target_os = ["android"]
Rastreo completo de la pila:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.webviewui/com.example.webviewui.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class android.webkit.WebView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class android.webkit.WebView at android.view.LayoutInflater.createView(LayoutInflater.java:633) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) at android.app.Activity.setContentView(Activity.java:2145) at com.example.webviewui.MainActivity.onCreate(MainActivity.java:48) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:607) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) at android.app.Activity.setContentView(Activity.java:2145) at com.example.webviewui.MainActivity.onCreate(MainActivity.java:48) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.IllegalArgumentException: Unsupported ABI: null at dalvik.system.VMRuntime.getInstructionSet(VMRuntime.java:324) at dalvik.system.VMRuntime.is64BitAbi(VMRuntime.java:337) at android.webkit.WebViewFactory.getWebViewNativeLibraryPaths(WebViewFactory.java:286) at android.webkit.WebViewFactory.loadNativeLibrary(WebViewFactory.java:397) at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:103) at android.webkit.WebView.getFactory(WebView.java:2194) at android.webkit.WebView.ensureProviderCreated(WebView.java:2189) at android.webkit.WebView.setOverScrollMode(WebView.java:2248) at android.view.View.<init>(View.java:3588) at android.view.View.<init>(View.java:3682) at android.view.ViewGroup.<init>(ViewGroup.java:497) at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55) at android.webkit.WebView.<init>(WebView.java:544) at android.webkit.WebView.<init>(WebView.java:489) at android.webkit.WebView.<init>(WebView.java:472) at android.webkit.WebView.<init>(WebView.java:459) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:607) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) at android.app.Activity.setContentView(Activity.java:2145) at com.example.webviewui.MainActivity.onCreate(MainActivity.java:48) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
- Android - forma simple de entrada de usuario web-view para back-end java con jQuery Mobile
- JQuery Mobile no funciona en WebView al cargar desde activos locales
- BasicAuthentication en android para que la vista web no funcione
- Android, captura de url de redirección webview
- Android: ¿Es posible y cómo cambiar el tamaño de letra de una página HTML que se muestra en un WebView?
- ¿Puede WebView de Android redimensionar automáticamente imágenes enormes?
- ¿Cómo buscar el contenido del sitio web y ponerlo en la forma en que queremos en el diseño de la aplicación para Android?
- Phonegap inAppBrowser, target _self no funciona
- ¿Cómo agregar los botones flotantes en VrPanoramaView para la navegación como se muestra en la imagen?
- Silencio de Google Iniciar sesión en el servicio de fondo Android