Project obfuscation

Hey Im trying to obfuscate my jar file with proguard, but Im having trouble doing so
-dontoptimize
-dontpreverify
-keep class ** { *; }
-ignorewarnings
-dontoptimize
-dontpreverify
-keep class ** { *; }
-ignorewarnings
I do not want to lose any files, I do not want it to get optimized, I just want all files inside of the jesse/scriptmod package to get obfuscated I got a dictionary file that contains all words the obfuscator may use, can someone help me?
75 Replies
JavaBot
JavaBot2w ago
This post has been reserved for your question.
Hey @j_sse! Please use /close or the Close Post button above when your problem is solved. Please remember to follow the help guidelines. This post will be automatically marked as dormant after 300 minutes of inactivity.
TIP: Narrow down your issue to simple and precise questions to maximize the chance that others will reply in here.
dan1st
dan1st2w ago
what exactly is the issue with your current configuration?
JavaBot
JavaBot2w ago
💤 Post marked as dormant
This post has been inactive for over 300 minutes, thus, it has been archived. If your question was not answered yet, feel free to re-open this post or create a new one. In case your post is not getting any attention, you can try to use /help ping. Warning: abusing this will result in moderative actions taken against you.
j_sse
j_sseOP2w ago
Nothing gets obfuscated, I just get the same exact jar back
dan1st
dan1st2w ago
then what do you want to obfuscate? You are using -keep which I think means "don't obfuscate that"
j_sse
j_sseOP2w ago
All the files inside of the jesse/scriptmod package I tried without this, and it just removes the files that are not in the keep It has a bunch of other libraries inside which it depends on, I cannot remove nor rename those
dan1st
dan1st2w ago
I think you can do -keep class !jesse.** { *; }
JavaBot
JavaBot2w ago
💤 Post marked as dormant
This post has been inactive for over 300 minutes, thus, it has been archived. If your question was not answered yet, feel free to re-open this post or create a new one. In case your post is not getting any attention, you can try to use /help ping. Warning: abusing this will result in moderative actions taken against you.
j_sse
j_sseOP2w ago
Sorry for the late reply, I tried this and it just seemed to delete the jesse package I am getting a ton of warnings and without -ignorewarnings it will not build
dan1st
dan1st2w ago
do you want the class and method names to stay the same?
j_sse
j_sseOP2w ago
no, nothing in my jesse package should stay the same for all other files they should stay the same -keep class !jesse.** { *; } seems to delete all my files that are in the jesse package im not sure if this is because of all the errors its giving which im ignoring
dan1st
dan1st2w ago
I think you might need to keep at least your main class
j_sse
j_sseOP2w ago
sure, I have an InstallerFrame though thats not in the jesse package
dan1st
dan1st2w ago
idk which errors you are getting but I don't really know obfuscation tbh cause it's pretty useless
j_sse
j_sseOP2w ago
if I run it with
-dontoptimize
-dontpreverify

-keep class !jesse.** { *; }
-dontoptimize
-dontpreverify

-keep class !jesse.** { *; }
:
dan1st
dan1st2w ago
Can you try only keeping your main class?
j_sse
j_sseOP2w ago
... hundreds more Note: ...
Note: org.spongepowered.asm.mixin.transformer.ext.extensions.ExtensionClassExporter accesses a declared constructor '<init>(java.io.File)' dynamically
Note: org.spongepowered.tools.obfuscation.AnnotatedMixinElementHandlerOverwrite accesses a method 'isStatic()' dynamically
Note: org.spongepowered.tools.obfuscation.ObfuscationType accesses a declared constructor '<init>(org.spongepowered.tools.obfuscation.ObfuscationType)' dynamically
Warning: there were 54161 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedclass)
Warning: there were 123 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile the code.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedprogramclassmember)
Unexpected error
java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:526) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.ProGuard.initialize(ProGuard.java:353) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.ProGuard.execute(ProGuard.java:142) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.ProGuard.main(ProGuard.java:648) [proguard-base-7.6.0.jar:7.6.0]
... hundreds more Note: ...
Note: org.spongepowered.asm.mixin.transformer.ext.extensions.ExtensionClassExporter accesses a declared constructor '<init>(java.io.File)' dynamically
Note: org.spongepowered.tools.obfuscation.AnnotatedMixinElementHandlerOverwrite accesses a method 'isStatic()' dynamically
Note: org.spongepowered.tools.obfuscation.ObfuscationType accesses a declared constructor '<init>(org.spongepowered.tools.obfuscation.ObfuscationType)' dynamically
Warning: there were 54161 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedclass)
Warning: there were 123 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile the code.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedprogramclassmember)
Unexpected error
java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:526) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.ProGuard.initialize(ProGuard.java:353) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.ProGuard.execute(ProGuard.java:142) ~[proguard-base-7.6.0.jar:7.6.0]
at proguard.ProGuard.main(ProGuard.java:648) [proguard-base-7.6.0.jar:7.6.0]
dan1st
dan1st2w ago
I think that is fine as long as these classes are present at runtime
j_sse
j_sseOP2w ago
-dontoptimize
-dontpreverify

-keep class jesse.** { *; }

-ignorewarnings
-dontoptimize
-dontpreverify

-keep class jesse.** { *; }

-ignorewarnings
it seemed to have obfuscated something?
No description
j_sse
j_sseOP2w ago
yeah they are though I need all the jesse.scriptmod to be obfuscated fully
dan1st
dan1st2w ago
I meant keeping the main class but nothing else in your jesse package or all classes you need to be accessible from outside I think that if proguard sees a class or method that is needer used nor "kept", it deletes that so you first need to know what is accessed from outside (e.g. via reflection) and then tell it to keep these things
j_sse
j_sseOP2w ago
it does not have anything it does not need I want it to not remove anything, solely obfuscate it if I only keep InstallerFrame it doesnt work anymore, does build but its missing necessary stuff
dan1st
dan1st2w ago
well is there a big difference between removing and moving it somewhere where it can't be accessed by anything? like by obfuscating it, you are practically removing it
j_sse
j_sseOP2w ago
im not too sure what you mean I have created a ton of classes that solely interact with each other, and some outside libraries, I want to obfuscate the names of my classes and variables so that they are not that easy to read and copy, that is all I want it to do
dan1st
dan1st2w ago
and what's calling your classes?
j_sse
j_sseOP2w ago
It does still need to interact with outside libraries, this is for a minecraft 1.8.9 forge mod, so it cannot rename those other libraries Minecraft Forge
dan1st
dan1st2w ago
Then how does forge know what classes it needs to call?
j_sse
j_sseOP2w ago
oh its been a long time since ive configured that, let me take a look
dan1st
dan1st2w ago
I think -dontshrink does what you asked for
j_sse
j_sseOP2w ago
I do know ill need to keep some files for it to be recognized by forge, but I just wanted to see if obfuscation was possible, and figured I would fix that later on
dan1st
dan1st2w ago
but it would probably not work as you want it to work
j_sse
j_sseOP2w ago
YES I think so yes I need to keep some files that are nessecary, but at least this is working up until this point
dan1st
dan1st2w ago
because of exactly that - you are telling forge about some classes - but these wouldn't be accessible to forge any more as soon as you obfuscate it
j_sse
j_sseOP2w ago
True, I can just keep my main Mod subclass
dan1st
dan1st2w ago
and that's what you need to use -keep for and if you "keep" your bot class, it should make sure all classes used by that still exist - but they would be obfuscated
j_sse
j_sseOP2w ago
Im pretty sure Forge just looks for an exact name given in some config file, if I rename it there as well I should be good, no?
dan1st
dan1st2w ago
? just make sure to "keep" everything forge looks for? you wouldn't know what to put there I think..? because the name generated by proguard is random
j_sse
j_sseOP2w ago
it looks like I can just
-dontoptimize
-dontpreverify
-dontshrink

-keep class !jesse.** { *; }
-keep class jesse.scriptmod.ScriptMod { *; }

-ignorewarnings
-dontoptimize
-dontpreverify
-dontshrink

-keep class !jesse.** { *; }
-keep class jesse.scriptmod.ScriptMod { *; }

-ignorewarnings
should be all I need however I do have one issue, I have a mixins json file which references some java files which are renamed, do you know of a way that I can rename them in this json file as well
dan1st
dan1st2w ago
sure you need the -dontshrink now? keep them
j_sse
j_sseOP2w ago
there should be a way to have them get renamed by proguard, no? I decompiled some other mods which use obfuscation and they have them renamed, I assume they have not done this manually
{
"package": "jesse.scriptmod.mixins",
"refmap": "mixins.scriptmod.refmap.json",
"minVersion": "0.1",
"plugin": "jesse.scriptmod.envcheck.MixinConfigPlugin",
"compatibilityLevel": "JAVA_8",
"mixins": [
"MixinEntityPlayerSP",
"MixinKeyBinding",
"AccessorKeyBinding",
"MixinMinecraft",
"MixinEntityLivingBase",
"MixinPlayerControllerMP",
"AccessorGuiIngame",
"AccessorGuiContainer",
"MixinGuiContainerCreative"
],
"client": []
}
{
"package": "jesse.scriptmod.mixins",
"refmap": "mixins.scriptmod.refmap.json",
"minVersion": "0.1",
"plugin": "jesse.scriptmod.envcheck.MixinConfigPlugin",
"compatibilityLevel": "JAVA_8",
"mixins": [
"MixinEntityPlayerSP",
"MixinKeyBinding",
"AccessorKeyBinding",
"MixinMinecraft",
"MixinEntityLivingBase",
"MixinPlayerControllerMP",
"AccessorGuiIngame",
"AccessorGuiContainer",
"MixinGuiContainerCreative"
],
"client": []
}
It looks like this, jesse.scriptmod.envcheck.MixinConfigPlugin is the exact path, and everything in "mixins" is in jesse.scriptmod.mixins package
dan1st
dan1st2w ago
Is the file part of whatever you are obfuscating? is it a "resource file"?
j_sse
j_sseOP2w ago
im not sure about the exact terminology, but it is inside a resources folder yes and does not get obfuscated currently, and I do not want it to, only have these names get renamed as well
dan1st
dan1st2w ago
if yes, try -adaptresourcefilecontents https://stackoverflow.com/a/51610721/10871900
Stack Overflow
ProGuard - Obfuscate classes name inside resource file
I'm using reflection to create classes. the classes names are located inside xml file called "classes.xml". I need to obfuscate my code using proguard. I have the following package structure: /msoft/
j_sse
j_sseOP2w ago
updated mixins config file from another mod for reference
dan1st
dan1st2w ago
idk Minecraft modding lol
j_sse
j_sseOP2w ago
should I give this a file filter? The file I need to get updated is located in src/main/resources/mixins.scriptmod.json, what should be the filter is it just mixins.scriptmod.json? ill try -adaptresourcefilecontents **/mixins.scriptmod.json does not seem to do anything
dan1st
dan1st2w ago
Do you need that at all? You are obfuscating the generated JAR, right?
j_sse
j_sseOP2w ago
yes, but forge reads this json file, so they need to exist
j_sse
j_sseOP2w ago
oh it looks like it did update the package, the other files were not recognized
j_sse
j_sseOP2w ago
perhaps I can fix that
dan1st
dan1st2w ago
Yeah if the file is part of the JAR, it should be updated I think at least with that option
j_sse
j_sseOP2w ago
in the json file they are solely the class name, not the directory
"mixins": [
"MixinEntityPlayerSP",
"MixinKeyBinding",
"AccessorKeyBinding",
"MixinMinecraft",
"MixinEntityLivingBase",
"MixinPlayerControllerMP",
"AccessorGuiIngame",
"AccessorGuiContainer",
"MixinGuiContainerCreative"
],
"mixins": [
"MixinEntityPlayerSP",
"MixinKeyBinding",
"AccessorKeyBinding",
"MixinMinecraft",
"MixinEntityLivingBase",
"MixinPlayerControllerMP",
"AccessorGuiIngame",
"AccessorGuiContainer",
"MixinGuiContainerCreative"
],
perhaps thats why it doesnt update these, let me try some things
dan1st
dan1st2w ago
oh - no, that doesn't work try keeping those if it works, you can still try other things
j_sse
j_sseOP2w ago
changing it to
{
"package": "jesse.scriptmod.mixins",
"refmap": "mixins.scriptmod.refmap.json",
"minVersion": "0.1",
"plugin": "jesse.scriptmod.envcheck.MixinConfigPlugin",
"compatibilityLevel": "JAVA_8",
"mixins": [
"jesse.scriptmod.mixins.MixinEntityPlayerSP",
"jesse.scriptmod.mixins.MixinKeyBinding",
"jesse.scriptmod.mixins.AccessorKeyBinding",
"jesse.scriptmod.mixins.MixinMinecraft",
"jesse.scriptmod.mixins.MixinEntityLivingBase",
"jesse.scriptmod.mixins.MixinPlayerControllerMP",
"jesse.scriptmod.mixins.AccessorGuiIngame",
"jesse.scriptmod.mixins.AccessorGuiContainer",
"jesse.scriptmod.mixins.MixinGuiContainerCreative"
],
"client": []
}
{
"package": "jesse.scriptmod.mixins",
"refmap": "mixins.scriptmod.refmap.json",
"minVersion": "0.1",
"plugin": "jesse.scriptmod.envcheck.MixinConfigPlugin",
"compatibilityLevel": "JAVA_8",
"mixins": [
"jesse.scriptmod.mixins.MixinEntityPlayerSP",
"jesse.scriptmod.mixins.MixinKeyBinding",
"jesse.scriptmod.mixins.AccessorKeyBinding",
"jesse.scriptmod.mixins.MixinMinecraft",
"jesse.scriptmod.mixins.MixinEntityLivingBase",
"jesse.scriptmod.mixins.MixinPlayerControllerMP",
"jesse.scriptmod.mixins.AccessorGuiIngame",
"jesse.scriptmod.mixins.AccessorGuiContainer",
"jesse.scriptmod.mixins.MixinGuiContainerCreative"
],
"client": []
}
does work now though im not sure if Forge will still read them correctly, let me test it out it seems to be fine, this looks perfect though my installer seems to be broken now, ill probably have to keep some more files ill check that out, thanks so much for your help I really appreciate it!
JavaBot
JavaBot2w ago
If you are finished with your post, please close it. If you are not, please ignore this message. Note that you will not be able to send further messages here after this post have been closed but you will be able to create new posts.
j_sse
j_sseOP2w ago
haha smart bot ill keep it open for now
dan1st
dan1st2w ago
that thing is stupidly simple
j_sse
j_sseOP2w ago
fair I meant more like, funny little feature I cannot seem to get the Installer working when its obfuscated, I cannot find any breaking differences would it help if I sent both obfuscated and non obfuscated jar files here oh
Error: Unable to initialize main class InstallerFrame
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 123
Exception Details:
Location:
InstallerFrame.getLogoLabel()Ljavax/swing/JLabel; @4: ifnonnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0000000: 2ab4 007a c700 772a b600 e3b6 00df 1230
0000010: b600 e1b8 0100 1101 8a11 00c5 07b6 00cb
0000020: 4c2a bb00 6c59 bb00 6859 2bb7 0101 b701
0000030: 12b5 007a 2ab4 007a 121e b601 162a b400
0000040: 7a08 0811 018a 1100 c5b6 0113 2ab4 007a
0000050: bb00 4859 1213 0410 12b7 00c4 b601 142a
0000060: b400 7a03 b601 152a b400 7abb 0046 5911
0000070: 0117 1100 cab7 00c2 b601 172a b400 7ab0
0000080:
Error: Unable to initialize main class InstallerFrame
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 123
Exception Details:
Location:
InstallerFrame.getLogoLabel()Ljavax/swing/JLabel; @4: ifnonnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0000000: 2ab4 007a c700 772a b600 e3b6 00df 1230
0000010: b600 e1b8 0100 1101 8a11 00c5 07b6 00cb
0000020: 4c2a bb00 6c59 bb00 6859 2bb7 0101 b701
0000030: 12b5 007a 2ab4 007a 121e b601 162a b400
0000040: 7a08 0811 018a 1100 c5b6 0113 2ab4 007a
0000050: bb00 4859 1213 0410 12b7 00c4 b601 142a
0000060: b400 7a03 b601 152a b400 7abb 0046 5911
0000070: 0117 1100 cab7 00c2 b601 172a b400 7ab0
0000080:
in getLogoLabel() I have
Image image = ImageIO.read(
getClass()
.getClassLoader()
.getResourceAsStream("assets/scriptmod/logo.png")
)
Image image = ImageIO.read(
getClass()
.getClassLoader()
.getResourceAsStream("assets/scriptmod/logo.png")
)
though the logo is still in the obfuscated zip
private JLabel getLogoLabel() throws IOException {
if (this.logoLabel == null) {
Image image = ImageIO.read(
getClass()
.getClassLoader()
.getResourceAsStream("assets/scriptmod/logo.png")
).getScaledInstance(
Sizes.LOGO_WIDTH - Sizes.LOGO_MARGIN * 2,
Sizes.LOGO_HEIGHT - Sizes.LOGO_MARGIN,
Image.SCALE_SMOOTH
);

this.logoLabel = new JLabel(new ImageIcon(image));
this.logoLabel.setName("Logo");
this.logoLabel.setBounds(
Sizes.LOGO_X_OFFSET + Sizes.LOGO_MARGIN,
Sizes.LOGO_Y_OFFSET + Sizes.LOGO_MARGIN,
Sizes.LOGO_WIDTH - Sizes.LOGO_MARGIN * 2,
Sizes.LOGO_HEIGHT - Sizes.LOGO_MARGIN
);
this.logoLabel.setFont(new Font(
Font.DIALOG,
Font.BOLD,
Sizes.LOGO_FONT_SIZE
));
this.logoLabel.setHorizontalAlignment(SwingConstants.CENTER);
this.logoLabel.setPreferredSize(
new Dimension(
Sizes.LOGO_PREFERRED_WIDTH,
Sizes.LOGO_PREFERRED_HEIGHT
)
);
}
return this.logoLabel;
}
private JLabel getLogoLabel() throws IOException {
if (this.logoLabel == null) {
Image image = ImageIO.read(
getClass()
.getClassLoader()
.getResourceAsStream("assets/scriptmod/logo.png")
).getScaledInstance(
Sizes.LOGO_WIDTH - Sizes.LOGO_MARGIN * 2,
Sizes.LOGO_HEIGHT - Sizes.LOGO_MARGIN,
Image.SCALE_SMOOTH
);

this.logoLabel = new JLabel(new ImageIcon(image));
this.logoLabel.setName("Logo");
this.logoLabel.setBounds(
Sizes.LOGO_X_OFFSET + Sizes.LOGO_MARGIN,
Sizes.LOGO_Y_OFFSET + Sizes.LOGO_MARGIN,
Sizes.LOGO_WIDTH - Sizes.LOGO_MARGIN * 2,
Sizes.LOGO_HEIGHT - Sizes.LOGO_MARGIN
);
this.logoLabel.setFont(new Font(
Font.DIALOG,
Font.BOLD,
Sizes.LOGO_FONT_SIZE
));
this.logoLabel.setHorizontalAlignment(SwingConstants.CENTER);
this.logoLabel.setPreferredSize(
new Dimension(
Sizes.LOGO_PREFERRED_WIDTH,
Sizes.LOGO_PREFERRED_HEIGHT
)
);
}
return this.logoLabel;
}
is it going wrong at the this.logoLabel == null?
dan1st
dan1st2w ago
ok so obfuscators do all sorts of stuff that generates half-valid code ig that's probably some case where it just generated something that couldn't run The verifier ensures that all code us valid in some ways before executing it - and VerifyError means that detected an issue
dan1st
dan1st2w ago
Stack Overflow
Obfuscation causes VerifyError: Expecting a stackmap frame
We are using latest JDK 7 (u45) and ProGuard Version 4.10 Lately starting our distribution fails, after obfuscating it, with the following error: Exception in thread "main" java.lang.VerifyError:
dan1st
dan1st2w ago
remove -dontpreverify
j_sse
j_sseOP2w ago
its not building when I do this
j_sse
j_sseOP2w ago
j_sse
j_sseOP2w ago
It appears you are missing some classes resulting in an incomplete class hierarchy,
please refer to the troubleshooting page in the manual:
https://www.guardsquare.com/en/products/proguard/manual/troubleshooting#superclass

at proguard.ProGuard.execute(ProGuard.java:268) ~[proguard-base-7.5.0.jar:7.5.0]
at proguard.ProGuard.main(ProGuard.java:648) ~[proguard-base-7.5.0.jar:7.5.0]
It appears you are missing some classes resulting in an incomplete class hierarchy,
please refer to the troubleshooting page in the manual:
https://www.guardsquare.com/en/products/proguard/manual/troubleshooting#superclass

at proguard.ProGuard.execute(ProGuard.java:268) ~[proguard-base-7.5.0.jar:7.5.0]
at proguard.ProGuard.main(ProGuard.java:648) ~[proguard-base-7.5.0.jar:7.5.0]
the manual is telling me I could use -dontpreverify
dan1st
dan1st2w ago
try adding -libraryjars with all dependency JARs or maybe you could try -allowaccessmodification idk
dan1st
dan1st2w ago
GitHub
java.lang.VerifyError: Expecting a stackmap frame at branch target ...
Hi Team, While obfuscation my Shadow Jar which is dependent on multiple modules I have added rule to keep class inside one package -keep class com.service.** { *; } Still I can see that proguard is...
dan1st
dan1st2w ago
no idea about that though
j_sse
j_sseOP2w ago
I have no idea where these are located, not too experienced with java compilation would my gradle build file help?
dan1st
dan1st2w ago
I think there might be a Gradle command to get all project.configurations.runtimeClasspath should give you all dependencies or alternatively project.configurations.compileClasspath probably makes more sense
j_sse
j_sseOP2w ago
tasks.register("proguard") {
dependsOn(remapJar)
doLast {
val inputJar = remapJar.archiveFile.get().asFile
val outputJar = File(inputJar.parent, inputJar.nameWithoutExtension + "-obf.jar")

val libraryJars = project.configurations.compileClasspath.get().files.joinToString(separator = ":") { it.absolutePath }

javaexec {
mainClass.set("proguard.ProGuard")
classpath = proguardConfig + files("libs/proguard.jar")
args = listOf(
"-injars", inputJar.absolutePath,
"-outjars", outputJar.absolutePath,
"-printmapping", "$buildDir/libs/proguard-map.txt",
"-libraryjars", libraryJars,
"@proguard-rules.pro",
)
}
}
}
tasks.register("proguard") {
dependsOn(remapJar)
doLast {
val inputJar = remapJar.archiveFile.get().asFile
val outputJar = File(inputJar.parent, inputJar.nameWithoutExtension + "-obf.jar")

val libraryJars = project.configurations.compileClasspath.get().files.joinToString(separator = ":") { it.absolutePath }

javaexec {
mainClass.set("proguard.ProGuard")
classpath = proguardConfig + files("libs/proguard.jar")
args = listOf(
"-injars", inputJar.absolutePath,
"-outjars", outputJar.absolutePath,
"-printmapping", "$buildDir/libs/proguard-map.txt",
"-libraryjars", libraryJars,
"@proguard-rules.pro",
)
}
}
}
Im getting ........ at proguard.InputReader.readInput(InputReader.java:282) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.InputReader.readInput(InputReader.java:229) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.InputReader.readInput(InputReader.java:206) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.InputReader.execute(InputReader.java:157) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.ProGuard.readInput(ProGuard.java:330) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.ProGuard.execute(ProGuard.java:123) ~[proguard-base-7.5.0.jar:7.5.0] at proguard.ProGuard.main(ProGuard.java:648) ~[proguard-base-7.5.0.jar:7.5.0] Caused by: java.io.IOException: No such file or directory: ....... I feel like this is a lot of trouble for something I dont even know will work are you sure giving it the library jars will have it be able to build?
dan1st
dan1st2w ago
no is there maybe something in the compile classpath that isn't a JAR? or maybe an empty string/path?
j_sse
j_sseOP2w ago
doesnt seem to be
j_sse
j_sseOP2w ago
j_sse
j_sseOP2w ago
I can try to clear the cache these all do exist oh my bad I was separating with : and im on Windows so should have been ; this might be the problem im facing now
^^^^^^^^^ Can't find common super class of [info.bliki.wiki.tags.util.TagStack] (with 1 known super classes: info.bliki.wiki.tags.util.TagStack and 1 unknown classes: java.util.ArrayList) and [info.bliki.wiki.filter.WPList$InternalList] (with 1 known super classes: info.bliki.wiki.filter.WPList$InternalList and 1 unknown classes: java.util.ArrayList)
^^^^^^^^^ Can't find common super class of [info.bliki.wiki.tags.util.TagStack] (with 1 known super classes: info.bliki.wiki.tags.util.TagStack and 1 unknown classes: java.util.ArrayList) and [info.bliki.wiki.filter.WPList$InternalList] (with 1 known super classes: info.bliki.wiki.filter.WPList$InternalList and 1 unknown classes: java.util.ArrayList)
this is really weird to me, im keeping everything, so it should include that right? My current proguard rules file:
-dontoptimize
-dontshrink

-obfuscationdictionary obfuscation_dictionary.txt
-classobfuscationdictionary obfuscation_dictionary.txt
-packageobfuscationdictionary obfuscation_dictionary.txt

-keep class !jesse.** { *; }
-keep class jesse.scriptmod.ScriptMod { *; }
-adaptresourcefilecontents mixins.scriptmod.json

-dontwarn
-dontoptimize
-dontshrink

-obfuscationdictionary obfuscation_dictionary.txt
-classobfuscationdictionary obfuscation_dictionary.txt
-packageobfuscationdictionary obfuscation_dictionary.txt

-keep class !jesse.** { *; }
-keep class jesse.scriptmod.ScriptMod { *; }
-adaptresourcefilecontents mixins.scriptmod.json

-dontwarn
I added the java.base.jmod file to the libraryjars, now am getting
^^^^^^ Can't find common super class of [InstallerFrame] (with 1 known super classes: InstallerFrame and 1 unknown classes: javax.swing.JFrame) and [java.lang.Exception] (with 3 known super classes: java.lang.Object, java.lang.Throwable, java.lang.Exception)
^^^^^^ Can't find common super class of [InstallerFrame] (with 1 known super classes: InstallerFrame and 1 unknown classes: javax.swing.JFrame) and [java.lang.Exception] (with 3 known super classes: java.lang.Object, java.lang.Throwable, java.lang.Exception)
yeah it cant find JFrame, I have no idea why
JavaBot
JavaBot2w ago
💤 Post marked as dormant
This post has been inactive for over 300 minutes, thus, it has been archived. If your question was not answered yet, feel free to re-open this post or create a new one. In case your post is not getting any attention, you can try to use /help ping. Warning: abusing this will result in moderative actions taken against you.
Want results from more Discord servers?
Add your server