Dear Concerned,
Hope you are doing well. We wanted to create Apache Kafka Producer and Consumer
Client for our Android app. But we are getting this error that the Management
Factory is not present in Android. Is there any alternative way we can use for
that? If we can, will you suggest any alternative way please.
We have created a repository for our App. Here is the link below. If you can
give any solutions it will be really helpful for us.
Error:
java.lang.NoClassDefFoundError: Failed resolution of:
Ljava/lang/management/ManagementFactory;
at
org.apache.kafka.common.utils.AppInfoParser.unregisterAppInfo(AppInfoParser.java:65)
at
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:699)
at
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:333)
at
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:188)
at com.israt.jahan.kafkatestrnd.MainActivity.send(MainActivity.java:50)
at
com.israt.jahan.kafkatestrnd.MainActivity.access$000(MainActivity.java:18)
at
com.israt.jahan.kafkatestrnd.MainActivity$1.onClick(MainActivity.java:34)
at android.view.View.performClick(View.java:6612)
at android.view.View.performClickInternal(View.java:6589)
at android.view.View.access$3100(View.java:785)
at android.view.View$PerformClick.run(View.java:25925)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6823)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.ClassNotFoundException: Didn't find class
"java.lang.management.ManagementFactory" on path: DexPathList[[zip file
"/data/app/com.israt.jahan.kafkatestrnd-bleC0tZw1AXbDHd8T9OnJQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.israt.jahan.kafkatestrnd-bleC0tZw1AXbDHd8T9OnJQ==/lib/arm64,
/system/lib64]]
at
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:171)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at
org.apache.kafka.common.utils.AppInfoParser.unregisterAppInfo(AppInfoParser.java:65)
at
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:699)
at
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:333)
at
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:188)
at com.israt.jahan.kafkatestrnd.MainActivity.send(MainActivity.java:50)
at
com.israt.jahan.kafkatestrnd.MainActivity.access$000(MainActivity.java:18)
at
com.israt.jahan.kafkatestrnd.MainActivity$1.onClick(MainActivity.java:34)
at android.view.View.performClick(View.java:6612)
at android.view.View.performClickInternal(View.java:6589)
at android.view.View.access$3100(View.java:785)
at android.view.View$PerformClick.run(View.java:25925)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6823)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Android Gradle Dependency:
implementation 'org.apache.kafka:kafka-clients:0.10.0.0'
implementation 'org.apache.kafka:kafka-streams:0.10.0.0'
Project Link:
https://github.com/israt-cloudwell/KafkaTestRND
Reference Links:
https://stackoverflow.com/questions/40427792/kafka-producer-on-android
https://stackoverflow.com/questions/57772783/how-can-we-create-kafka-producer-in-android-application
https://stackoverflow.com/questions/40043532/how-to-use-android-app-as-a-producing-client-for-kafka
https://stackoverflow.com/questions/19595814/android-add-java-lang-management-api
Thank You
Regards
Israt Jahan
Cloudwell Limited