0

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?

  • Please read [How to Ask](https://stackoverflow.com/help/how-to-ask). You should provide complete the [complete error message](https://meta.stackoverflow.com/questions/359146/why-should-i-post-complete-errors-why-isnt-the-message-itself-enough). When do you get this error? At building time, or execution time? – aled May 30 '23 at 12:10
  • Added the complete error message. – user4888455 May 30 '23 at 13:11

0 Answers0