Просмотр исходного кода

解决Current WebView Package (%s) is not installed for the current和WebViewChromiumFactoryProviderForT找不到的问题

JonaNorman 6 месяцев назад
Родитель
Сommit
c55d508b6a

+ 1 - 1
app/build.gradle

@@ -5,7 +5,7 @@ plugins {
 android {
 
     defaultConfig {
-        compileSdk 33
+        compileSdk 35
         applicationId "com.norman.webviewup.demo"
         minSdkVersion 21
         targetSdkVersion 35

+ 5 - 5
app/src/main/java/com/norman/webviewup/demo/MainActivity.java

@@ -204,11 +204,11 @@ public class MainActivity extends Activity implements UpgradeCallback {
                 } else {
                     UpgradeInfo upgradeInfo = upgradeInfoList.get(which);
                     String  systemWebViewPackageName = WebViewUpgrade.getSystemWebViewPackageName();
-                    if (systemWebViewPackageName != null &&systemWebViewPackageName.equals(upgradeInfo.packageName)
-                            && VersionUtils.compareVersion( WebViewUpgrade.getSystemWebViewPackageVersion(),upgradeInfo.versionName) >= 0) {
-                        Toast.makeText(getApplicationContext(), "system webView is larger than the one to be upgraded, so there is no need to upgrade", Toast.LENGTH_LONG).show();
-                        return;
-                    }
+//                    if (systemWebViewPackageName != null &&systemWebViewPackageName.equals(upgradeInfo.packageName)
+//                            && VersionUtils.compareVersion( WebViewUpgrade.getSystemWebViewPackageVersion(),upgradeInfo.versionName) >= 0) {
+//                        Toast.makeText(getApplicationContext(), "system webView is larger than the one to be upgraded, so there is no need to upgrade", Toast.LENGTH_LONG).show();
+//                        return;
+//                    }
                     selectUpgradeInfo = upgradeInfo;
                     UpgradeSource upgradeSource = getUpgradeSource(upgradeInfo);
                     if (upgradeSource == null) {

+ 1 - 1
core/build.gradle

@@ -6,7 +6,7 @@ android {
     namespace 'com.norman.webviewup.lib'
 
     defaultConfig {
-        compileSdk 33
+        compileSdk 35
         minSdkVersion 21
         targetSdkVersion 33
         consumerProguardFiles "consumer-rules.pro"

+ 0 - 1
core/src/main/java/com/norman/webviewup/lib/WebViewReplace.java

@@ -58,7 +58,6 @@ public class WebViewReplace {
                 }
             }
             managerHook = new PackageManagerServiceHook(context, packageInfo.packageName, apkPath,libsPath);
-            Log.i("Upgrade","apkPath:"+apkPath);
 
             updateServiceHook = new WebViewUpdateServiceHook(context, packageInfo.packageName);
             managerHook.hook();

+ 3 - 0
core/src/main/java/com/norman/webviewup/lib/hook/PackageManagerServiceHook.java

@@ -3,6 +3,7 @@ package com.norman.webviewup.lib.hook;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.ContextWrapper;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
@@ -133,6 +134,8 @@ public class PackageManagerServiceHook extends BinderHook {
                 if (TextUtils.isEmpty(packageInfo.applicationInfo.publicSourceDir)) {
                     packageInfo.applicationInfo.publicSourceDir = apkPath;
                 }
+                packageInfo.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED
+                        | ApplicationInfo.FLAG_HAS_CODE;
                 return packageInfo;
             }
             return (PackageInfo) invoke();

+ 0 - 1
core/src/main/java/com/norman/webviewup/lib/source/UpgradeAssetSource.java

@@ -36,7 +36,6 @@ public class UpgradeAssetSource extends UpgradePathSource {
                 outputStream = new FileOutputStream(getApkPath());
                 FileChannel dstChannel = outputStream.getChannel();
                 AssetManager assetManager = getContext().getAssets();
-                Log.d("AssetsUpdater",assetManager.openFd(assetName).toString());
                 AssetFileDescriptor assetFileDescriptor = assetManager.openFd(assetName);
                 inputStream = assetFileDescriptor.createInputStream();
                 FileChannel fileChannel = inputStream.getChannel();

+ 1 - 1
download-source/build.gradle

@@ -5,7 +5,7 @@ plugins {
 android {
     namespace 'com.norman.webviewup.lib.source.download'
     defaultConfig {
-        compileSdk 33
+        compileSdk 35
         minSdkVersion 21
         targetSdkVersion 33
         consumerProguardFiles "consumer-rules.pro"