Closed 18319557579 closed 1 year ago
AndroidJunkCode版本:1.3.1
gradle版本:6.1.1
AGP版本:4.0.1
JDK版本:1.8.0
productFlavors配置: buildTypes { release { debuggable false jniDebuggable false renderscriptDebuggable false minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' if (project.hasProperty("RELEASE_STORE_FILE")) { signingConfig signingConfigs.release } applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && variant.buildType.name == 'release' && outputFile.name.endsWith('.apk')) { output.outputFileName = "${PROJECTNAME}${versionName}_${releaseTime()}-release.apk" } } } externalNativeBuild { ndkBuild { arguments 'NDK_DEBUG=0' } } } debug { debuggable true jniDebuggable true renderscriptDebuggable true externalNativeBuild { ndkBuild { arguments 'NDK_DEBUG=1' } } } }
androidJunkCode配置: def config = { packageCount = 30 activityCountPerPackage = 16 excludeActivityJavaFile = false otherCountPerPackage = 26
packageCreator = { tuple2 -> def index = tuple2.first def packageNameBuilder = tuple2.second packageNameBuilder.append(getRandomPackageName()) } classNameCreator = { tuple2 -> def index = tuple2.first def classNameBuilder = tuple2.second classNameBuilder.append(getRandomClassName()) } activityCreator = { tuple4 -> def index = tuple4.first def activityNameBuilder = tuple4.second def layoutNameBuilder = tuple4.third def layoutContentBuilder = tuple4.fourth activityNameBuilder.append(getRandomActivityName()) layoutNameBuilder.append(getRandomStringWithSection(6, 20, 0)) layoutContentBuilder.append(getRandomLayout()) } typeGenerator = { typeBuilder -> for (def i = 0; i < getRandomNum(0, 6); i++) { typeBuilder.addField(getRandomField()) } for (def i = 0; i < getRandomNum(5, 10); i++) { typeBuilder.addMethod(getRandomMethod()) } } resPrefix = "" drawableCount = 1950 stringCount = 2000 drawableCreator = { tuple3 -> def index = tuple3.first def fileNameBuilder = tuple3.second def contentBuilder = tuple3.third fileNameBuilder.append(getRandomStr(2, 5, 4, 9, 0)) contentBuilder.append(getRandomDrawable()) } stringCreator = { tuple3 -> def index = tuple3.first def keyBuilder = tuple3.second def valueBuilder = tuple3.third keyBuilder.append(getRandomStringWithSection(6, 10, 0) + getRandomStringWithSection(0, 3, 2)) valueBuilder.append(getRandomStringWithSection(0, 50, 2)) }
} variantConfig { debug config release config }
bug描述: 目前AndroidJunkCode的版本是1.3.1,自动生成proguard-rules.pro是没问题的,内容也有
但是,自动生成的proguard-rules.pro内容中,类的修饰符都是public。然而我使用typeGenerator时,是没有去自定义类的修饰符的,因此AndroidJunkCode自动生成的类是没有可见性修饰符的
所以导致了生成的类和生成的proguard-rules.pro匹配不上。 我现在的做法是手动加了:typeBuilder.addModifiers(Modifier.PUBLIC),可以匹配上了。 后续打算优化这里吗?
1.3.2已修复
AndroidJunkCode版本:1.3.1
gradle版本:6.1.1
AGP版本:4.0.1
JDK版本:1.8.0
productFlavors配置: buildTypes { release { debuggable false jniDebuggable false renderscriptDebuggable false minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' if (project.hasProperty("RELEASE_STORE_FILE")) { signingConfig signingConfigs.release } applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && variant.buildType.name == 'release' && outputFile.name.endsWith('.apk')) { output.outputFileName = "${PROJECTNAME}${versionName}_${releaseTime()}-release.apk" } } } externalNativeBuild { ndkBuild { arguments 'NDK_DEBUG=0' } } } debug { debuggable true jniDebuggable true renderscriptDebuggable true externalNativeBuild { ndkBuild { arguments 'NDK_DEBUG=1' } } } }
androidJunkCode配置: def config = { packageCount = 30 activityCountPerPackage = 16 excludeActivityJavaFile = false otherCountPerPackage = 26
} variantConfig { debug config release config }
bug描述: 目前AndroidJunkCode的版本是1.3.1,自动生成proguard-rules.pro是没问题的,内容也有
但是,自动生成的proguard-rules.pro内容中,类的修饰符都是public。然而我使用typeGenerator时,是没有去自定义类的修饰符的,因此AndroidJunkCode自动生成的类是没有可见性修饰符的
所以导致了生成的类和生成的proguard-rules.pro匹配不上。 我现在的做法是手动加了:typeBuilder.addModifiers(Modifier.PUBLIC),可以匹配上了。 后续打算优化这里吗?