I am using openjdk11 and below is my proguard configuration
<proguard ignorewarnings="true" repackageclasses="controller.deps" allowaccessmodification="true" skipnonpubliclibraryclasses="false" skipnonpubliclibraryclassmembers="false" optimize="false" overloadaggressively="false" printmapping="agent-bootstrap.map" renamesourcefileattribute="SourceFile" verbose="true" >
<!-- we can use the path here, because we shrink the result -->
<!-- we can also drop all .xsl, .properties and other META-INF data from libs -->
<injar refid="dist.path" filter="!**/*.xsl,!**/*.properties,!META-INF/**" />
<injar file="${build.dir}/apg-bootstrap-agent-no-deps.jar" />
<outjar file="${build.lib.dir}/apg-bootstrap-agent.jar" />
<!-- keep attributes -->
<keepattribute name="*" />
<libraryjar file="${libs.dir}/sax-2.0.1.jar" />
<libraryjar file="${libs.dir}/jdk_logging.jar" /> <!-- Not sure if this a valid jar added this jar as it was not able to find reference classes -->
<libraryjar file="${libs.dir}/java-json.jar" />
<!-- <libraryjar file="${libs.dir}/java-rt-jar-stubs-1.5.0.jar" /> -->
<libraryjar file="${libs.dir}/jaxb/jaxb-api-2.3.0.jar" />
<libraryjar file="${libs.dir}/jaxb/javax.activation-1.2.0.jar" />
<libraryjar file="${libs.dir}/sql.jar" />
<libraryjar file="${libs.dir}/javax.xml-1.3.4.jar" />
<libraryjar file="${libs.dir}/javax.xml.stream-3.0.1.jar" />
<!-- global libraries -->
<!-- <libraryjar file="${java6.home}/lib/rt.jar" /> -->
<libraryjar file="/opt/jdk-11/jmods/java.base.jmod" />
<libraryjar file="/opt/jdk-11/jmods/java.desktop.jmod" />
<libraryjar file="/opt/jdk-11/jmods/java.management.jmod" />
<!-- still keep static fields, even if they have been inlined by the compiler -->
<keepclassmembernames name="*">
<field access="static" type="%" name="*" />
<field access="static" type="java.lang.String" name="*" />
</keepclassmembernames>
<!-- keep the agent entry point -->
<keep name="controller.ConBootstrap*">
<method name="premain" />
</keep>
</proguard>
<path id="build.path">
<fileset dir="${libs.dir}">
<libraryjar file="${libs.dir}/java-json.jar" />
</fileset>
<path refid="dist.path" />
</path>
Getting error as:
java.lang.NoClassDefFoundError: org/json/JSONException
19:02:06 at proguard.obfuscate.MappingPrinter.visitProgramClass(MappingPrinter.java:97)
19:02:06 at proguard.classfile.ProgramClass.accept(ProgramClass.java:544)
19:02:06 at proguard.classfile.ClassPool.classesAcceptAlphabetically(ClassPool.java:310)
19:02:06 at proguard.obfuscate.Obfuscator.execute(Obfuscator.java:654)
19:02:06 at proguard.pass.PassRunner.run(PassRunner.java:24)
19:02:06 at proguard.ProGuard.obfuscate(ProGuard.java:505)
19:02:06 at proguard.ProGuard.execute(ProGuard.java:212)
19:02:06 at proguard.ant.ProGuardTask.execute(ProGuardTask.java:333)
19:02:06 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
19:02:06 at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
19:02:06 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
19:02:06 at java.base/java.lang.reflect.Method.invoke(Method.java:566)
19:02:06 at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
19:02:06 at org.apache.tools.ant.Task.perform(Task.java:348)
19:02:06 at org.apache.tools.ant.Target.execute(Target.java:435)
19:02:06 at org.apache.tools.ant.Target.performTasks(Target.java:456)
19:02:06 at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
19:02:06 at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
19:02:06 at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
19:02:06 at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:440)
19:02:06 at org.apache.tools.ant.AntBridge.call(AntBridge.java:61)
19:02:06 at org.apache.tools.ant.AntBridge.call(AntBridge.java:17)
19:02:06 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
19:02:06 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
19:02:06 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
19:02:06 at java.base/java.lang.Thread.run(Thread.java:834)
19:02:06 Caused by: java.lang.ClassNotFoundException: org.json.JSONException
19:02:06 at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
19:02:06 at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315)
19:02:06 at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068)
19:02:06 at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
Tried below solutions: a. Added java-json.jar jar only in build.path b. Added java-json.jar in both build.path and proguard as libraryjars and c. Added java-json.jar in proguard as libraryjars
but still same issue.
Anyone please assist on how to resolve this issue?