10 votos

¿Cómo actualizar webview sin usar la tienda de Google Play?

Tengo un dispositivo Android 5.1, en el que tengo acceso Root completo. Para este dispositivo he escrito un aplicación cordova y lo instaló como aplicación del sistema . Funciona bien, sin embargo la versión webview de Android 5.1 es muy antigua y desgraciadamente tiene algunos fallos.

Sé que se puede actualizar el webview con el playstore, pero lamentablemente el dispositivo no tiene las apps de google y por lo tanto no soy capaz de actualizar el webview con el playstore.

Así que mi pregunta es: ¿Cómo puedo actualizar el sistema webview sin google playstore?

Ya lo intenté con un enfoque bastante ingenuo, que lamentablemente mató mi aplicación:

He descargado la última webview.apk de la playstore ( https://play.google.com/store/apps/details?id=com.google.Android.webview&hl=de )

Entonces lo hice:

adb remount
adb push webview.apk /system/webview/
adb reboot

Ahora me salen errores cuando intento iniciar mi aplicación cordova y la propia aplicación ya no aparece:

I/CordovaActivity( 1931): Apache Cordova native platform version 6.1.1 is starting
D/CordovaActivity( 1931): CordovaActivity.onCreate()
E/WebViewFactory( 1931): Failed to list WebView package libraries for loadNativeLibrary
E/WebViewFactory( 1931): android.content.pm.PackageManager$NameNotFoundException: com.android.webview
E/WebViewFactory( 1931):        at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:281)
E/WebViewFactory( 1931):        at android.webkit.WebViewFactory.getWebViewNativeLibraryPaths(WebViewFactory.java:282)
E/WebViewFactory( 1931):        at android.webkit.WebViewFactory.loadNativeLibrary(WebViewFactory.java:397)
E/WebViewFactory( 1931):        at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:103)
E/WebViewFactory( 1931):        at android.webkit.WebView.getFactory(WebView.java:2194)
E/WebViewFactory( 1931):        at android.webkit.WebView.ensureProviderCreated(WebView.java:2189)
E/WebViewFactory( 1931):        at android.webkit.WebView.setOverScrollMode(WebView.java:2248)
E/WebViewFactory( 1931):        at android.view.View.<init>(View.java:3595)
E/WebViewFactory( 1931):        at android.view.View.<init>(View.java:3689)

¿Cómo es la forma correcta de actualizar el webview.apk sin google playstore?

5voto

Guillermo Gomez Puntos 423

La aplicación Google WebView es muy diferentes de las normales. Usted no puede utilizar el Instalador de Paquetes para instalarlo o actualizarlo de forma habitual. Debe hacerlo usted mismo (Como para mi Lollipop 5.1.1).
Esta es la forma en que lo he hecho varias veces. Ejecutar en un shell Root. Usted puede necesitar busybox para unzip (o hacerlo con un gestor de archivos).

#!/system/bin/sh
rm -r /data/app/com.google.android.webview*
mkdir /data/app/com.google.android.webview-1
cd /data/app/com.google.android.webview-1
cp /path/to/your/webview.apk ./base.apk
unzip base.apk 'lib/armeabi-v7a'
mv lib/armeabi-v7a lib/arm
# Do the following 2 lines only if you're on an ARM64 ROM
unzip base.apk 'lib/arm64-v8a'
mv lib/arm64-v8a lib/arm
#
find . -type f -exec chmod 644 {} +
find . -type d -exec chmod 755 {} +
find . -exec chown 1000.1000 {} +

Como alternativa, puede intentar crear el directorio /system/priv-app/WebView y poner el nuevo APK allí. Acuérdate de deshacerte del viejo .

3voto

vastlysuperiorman Puntos 277

Intentas actualizar "com.google.Android.webview", pero tu sistema utiliza la versión "com.Android.webview".

1voto

Nelson Yeung Puntos 16

No se puede sustituir com.android.webview con com.google.android.webview ya que son dos paquetes diferentes y el nombre del paquete webview por defecto del sistema está codificado en framework-res.apk . Por favor, vea https://Android.stackexchange.com/a/139415/284780 para la explicación y https://Android.stackexchange.com/a/233282/284780 para la solución.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X