Skip to content

Commit 937afe5

Browse files
committed
feat: update kotlin version & gradle output format
1 parent e9ee6d6 commit 937afe5

File tree

6 files changed

+45
-9
lines changed

6 files changed

+45
-9
lines changed

app/build.gradle.kts

+20-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,27 @@ android {
2929
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
3030
}
3131

32+
signingConfigs {
33+
create("arouter_gradle_plugin") {
34+
keyAlias = "arouter_gradle_plugin"
35+
keyPassword = "arouter_gradle_plugin"
36+
storeFile = project.rootProject.projectDir.resolve("arouter_gradle_plugin.jks")
37+
storePassword = "arouter_gradle_plugin"
38+
enableV1Signing = true
39+
enableV2Signing = true
40+
}
41+
42+
}
43+
3244
buildTypes {
45+
debug{
46+
isMinifyEnabled = true
47+
proguardFiles(
48+
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
49+
)
50+
}
3351
release {
34-
isMinifyEnabled = false
52+
isMinifyEnabled = true
3553
proguardFiles(
3654
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
3755
)
@@ -48,7 +66,7 @@ android {
4866

4967
dependencies {
5068
implementation("com.alibaba:arouter-api:1.5.2")
51-
ksp("com.github.JailedBird:ArouterKspCompiler:1.6.10-1.0.2")
69+
ksp("com.github.JailedBird:ArouterKspCompiler:1.8.20-1.0.7")
5270
implementation("com.alibaba:fastjson:1.2.9")
5371
implementation("androidx.core:core-ktx:1.7.0")
5472
implementation("androidx.appcompat:appcompat:1.4.1")

app/proguard-rules.pro

+11-1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818

1919
# If you keep the line number information, uncomment this to
2020
# hide the original source file name.
21-
#-renamesourcefileattribute SourceFile
21+
#-renamesourcefileattribute SourceFile
22+
23+
-keep public class com.alibaba.android.arouter.routes.**{*;}
24+
-keep public class com.alibaba.android.arouter.facade.**{*;}
25+
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
26+
27+
# If you use the byType method to obtain Service, add the following rules to protect the interface:
28+
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
29+
30+
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
31+
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider

arouter-gradle-plugin/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
plugins {
44
id("java-gradle-plugin")
5-
id("org.jetbrains.kotlin.jvm") version "1.6.10"
5+
id("org.jetbrains.kotlin.jvm") version "1.8.20"
66
id("com.gradle.plugin-publish") version "1.2.0"
77
}
88

arouter-gradle-plugin/src/main/java/cn/jailedbird/arouter_gradle_plugin/TransformAllClassesTask.kt

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import cn.jailedbird.arouter_gradle_plugin.utils.InjectUtils
44
import cn.jailedbird.arouter_gradle_plugin.utils.ScanSetting
55
import cn.jailedbird.arouter_gradle_plugin.utils.ScanUtils
66
import org.apache.commons.io.IOUtils
7+
import org.apache.tools.ant.taskdefs.Zip
78
import org.gradle.api.DefaultTask
89
import org.gradle.api.file.Directory
910
import org.gradle.api.file.RegularFile
@@ -18,6 +19,7 @@ import java.io.InputStream
1819
import java.util.jar.JarEntry
1920
import java.util.jar.JarFile
2021
import java.util.jar.JarOutputStream
22+
import java.util.zip.ZipException
2123

2224
/**
2325
* TODO LIST
@@ -116,7 +118,12 @@ abstract class TransformAllClassesTask : DefaultTask() {
116118
}
117119
}
118120
} catch (e: Exception) {
119-
println("Merge jar error entry:${entry.name}, error is $e ")
121+
// Format Optimize: exclude [java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF]
122+
if(e is ZipException && e.message?.contains("META-INF/MANIFEST.MF") == true){
123+
// Skip META-INF/MANIFEST.MF
124+
}else{
125+
println("[Warning] Merge [jar:entry] ${jar.name}:${entry.name}, error is $e ")
126+
}
120127
}
121128
}
122129
jar.close()

arouter-gradle-plugin/src/main/java/cn/jailedbird/arouter_gradle_plugin/utils/InjectUtils.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ object InjectUtils {
1515
// refer hack class when object init
1616
fun referHackWhenInit(inputStream: InputStream, targetList: List<ScanSetting>): ByteArray {
1717
val cr = ClassReader(inputStream)
18-
val cw = ClassWriter(cr, ClassWriter.COMPUTE_FRAMES)
18+
// val cw = ClassWriter(cr, ClassWriter.COMPUTE_FRAMES)
19+
val cw = ClassWriter(cr, 0)
1920
val cv = InjectClassVisitor(Opcodes.ASM5, cw, targetList)
2021
cr.accept(cv, ClassReader.EXPAND_FRAMES)
2122
return cw.toByteArray()

build.gradle.kts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
plugins {
33
id ("com.android.application") version "7.4.0" apply false
44
id ("com.android.library") version "7.4.0" apply false
5-
id ("org.jetbrains.kotlin.android") version "1.6.10" apply false
6-
id ("org.jetbrains.kotlin.jvm") version "1.6.10" apply false
7-
id ("com.google.devtools.ksp") version "1.6.10-1.0.4" apply false
5+
id ("org.jetbrains.kotlin.android") version "1.8.20" apply false
6+
id ("org.jetbrains.kotlin.jvm") version "1.8.20" apply false
7+
id ("com.google.devtools.ksp") version "1.8.20-1.0.10" apply false
88
}

0 commit comments

Comments
 (0)