From 9f0f2cf27f6159099edab2cf57da0c300dc65d1c Mon Sep 17 00:00:00 2001 From: "liming@gac-nio.com" <12345678> Date: Mon, 28 Sep 2020 16:15:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7javassist=E5=88=B03.22.0-GA?= =?UTF-8?q?=E7=89=88=E6=9C=AC=EF=BC=8C=E8=BF=87=E6=BB=A4module-info.class?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- auto-patch-plugin/build.gradle | 2 +- gradle-plugin/build.gradle | 2 +- .../groovy/robust/gradle/plugin/asm/AsmInsertImpl.java | 7 +++++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d12b52e7..47077172 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,6 +70,6 @@ dependencies { compile 'com.squareup.okhttp:okhttp:2.5.0' compile 'com.google.code.gson:gson:2.3.1' compile 'com.android.support:design:25.4.0' - compile 'org.javassist:javassist:3.20.0-GA' + compile 'org.javassist:javassist:3.22.0-GA' compile project(path: ':patch') } \ No newline at end of file diff --git a/auto-patch-plugin/build.gradle b/auto-patch-plugin/build.gradle index 30d13cc2..5b00e098 100644 --- a/auto-patch-plugin/build.gradle +++ b/auto-patch-plugin/build.gradle @@ -8,7 +8,7 @@ dependencies { compile gradleApi() compile localGroovy() compile 'com.android.tools.build:gradle:2.1.0' - compile 'org.javassist:javassist:3.20.0-GA' + compile 'org.javassist:javassist:3.22.0-GA' // compile 'com.meituan.robust:autopatchbase:' + VERSION_NAME compile project(':autopatchbase') } diff --git a/gradle-plugin/build.gradle b/gradle-plugin/build.gradle index 69056f95..5e9645b1 100644 --- a/gradle-plugin/build.gradle +++ b/gradle-plugin/build.gradle @@ -7,7 +7,7 @@ dependencies { compile gradleApi() compile localGroovy() compile 'com.android.tools.build:gradle:2.1.0' - compile 'org.javassist:javassist:3.20.0-GA' + compile 'org.javassist:javassist:3.22.0-GA' compile fileTree(dir: "./src/main/libs", include: ['*.jar']) compile project(':autopatchbase') // compile 'com.meituan.robust:autopatchbase:0.4.93' diff --git a/gradle-plugin/src/main/groovy/robust/gradle/plugin/asm/AsmInsertImpl.java b/gradle-plugin/src/main/groovy/robust/gradle/plugin/asm/AsmInsertImpl.java index c29128ea..887594dc 100644 --- a/gradle-plugin/src/main/groovy/robust/gradle/plugin/asm/AsmInsertImpl.java +++ b/gradle-plugin/src/main/groovy/robust/gradle/plugin/asm/AsmInsertImpl.java @@ -50,6 +50,13 @@ protected void insertCode(List box, File jarFile) throws IOException, C ZipOutputStream outStream = new JarOutputStream(new FileOutputStream(jarFile)); //get every class in the box ,ready to insert code for (CtClass ctClass : box) { + /** + * 过滤掉javassis 从3.20.0-GA升级到3.22.0-GA产生的module-info.class + * 因为3.22.0-GA是使用java9编译的,会产生一个叫module-info.class的文件类 + */ + if ("META-INF.versions.9.module-info".equals(ctClass.getName())) { + continue; + } //change modifier to public ,so all the class in the apk will be public ,you will be able to access it in the patch ctClass.setModifiers(AccessFlag.setPublic(ctClass.getModifiers())); if (isNeedInsertClass(ctClass.getName()) && !(ctClass.isInterface() || ctClass.getDeclaredMethods().length < 1)) {