Hi,
I’m working on a project for school using the dl4j library (in android studio) . I checked the documentation on konduit but it appeared to be incorrect. I had many errors with duplication of classes and after I fixed that up I still had a few errors that I had to fix.
Now I am able to run the code but I still get an error when running:
MultiLayerNetwork neuralNetwork = new MultiLayerNetwork(configuration);
neuralNetwork.init();
the gradle code that I added is:
packagingOptions{
pickFirst 'lib/x86/*'
pickFirst 'org/bytedeco/javacpp/windows-x86/*'
pickFirst 'org/bytedeco/javacpp/windows-x86_64/*'
}
and
dependencies {
implementation(group: ‘org.deeplearning4j’, name: ‘deeplearning4j-core’, version: ‘0.9.1’) {
exclude group: ‘org.bytedeco’, module: ‘opencv-platform’
exclude group: ‘org.bytedeco’, module: ‘leptonica-platform’
exclude group: ‘org.bytedeco’, module: ‘hdf5-platform’
exclude group: ‘org.nd4j’, module: ‘nd4j-base64’
exclude group: ‘org.nd4j’, module: ‘protobuf’
exclude group: ‘com.google.guava’, module: ‘guava’
exclude group: 'com.bytedeco', module: 'javacpp'
}
implementation (group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta6'){exclude group: 'org.nd4j', module: 'protobuf'}
implementation (group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta6', classifier: "android-arm"){exclude group: 'org.nd4j', module: 'protobuf'}
implementation (group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta6', classifier: "android-arm64"){exclude group: 'org.nd4j', module: 'protobuf'}
implementation (group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta6', classifier: "android-x86"){exclude group: 'org.nd4j', module: 'protobuf'}
implementation (group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta6', classifier: "android-x86_64"){exclude group: 'org.nd4j', module: 'protobuf'}
implementation group: 'org.bytedeco', name: 'openblas', version: '0.3.7-1.5.2'
implementation group: 'org.bytedeco', name: 'openblas', version: '0.3.7-1.5.2', classifier: "android-arm"
implementation group: 'org.bytedeco', name: 'openblas', version: '0.3.7-1.5.2', classifier: "android-arm64"
implementation group: 'org.bytedeco', name: 'openblas', version: '0.3.7-1.5.2', classifier: "android-x86"
implementation group: 'org.bytedeco', name: 'openblas', version: '0.3.7-1.5.2', classifier: "android-x86_64"
implementation group: 'org.bytedeco', name: 'opencv', version: '4.1.2-1.5.2'
implementation group: 'org.bytedeco', name: 'opencv', version: '4.1.2-1.5.2', classifier: "android-arm"
implementation group: 'org.bytedeco', name: 'opencv', version: '4.1.2-1.5.2', classifier: "android-arm64"
implementation group: 'org.bytedeco', name: 'opencv', version: '4.1.2-1.5.2', classifier: "android-x86"
implementation group: 'org.bytedeco', name: 'opencv', version: '4.1.2-1.5.2', classifier: "android-x86_64"
implementation group: 'org.bytedeco', name: 'leptonica', version: '1.78.0-1.5.2'
implementation group: 'org.bytedeco', name: 'leptonica', version: '1.78.0-1.5.2', classifier: "android-arm"
implementation group: 'org.bytedeco', name: 'leptonica', version: '1.78.0-1.5.2', classifier: "android-arm64"
implementation group: 'org.bytedeco', name: 'leptonica', version: '1.78.0-1.5.2', classifier: "android-x86"
implementation group: 'org.bytedeco', name: 'leptonica', version: '1.78.0-1.5.2', classifier: "android-x86_64"
testImplementation 'junit:junit:4.13.2'
the error I get is:
Process: com.example.myapplication, PID: 15183
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/Predicates;
at org.reflections.scanners.AbstractScanner.(AbstractScanner.java:21)
at org.reflections.scanners.TypeAnnotationsScanner.(TypeAnnotationsScanner.java:8)
at org.reflections.util.ConfigurationBuilder.(ConfigurationBuilder.java:53)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.registerSubtypes(NeuralNetConfiguration.java:456)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.configureMapper(NeuralNetConfiguration.java:421)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.initMapper(NeuralNetConfiguration.java:394)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.(NeuralNetConfiguration.java:123)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration$Builder.build(NeuralNetConfiguration.java:1223)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration$ListBuilder.build(NeuralNetConfiguration.java:279)
at com.example.myapplication.MainActivity.aa(MainActivity.java:112)
at com.example.myapplication.MainActivity.onCreate(MainActivity.java:48)
at android.app.Activity.performCreate(Activity.java:7994)
at android.app.Activity.performCreate(Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.google.common.base.Predicates” on path: DexPathList[[dex file “/data/data/com.example.myapplication/code_cache/.overlay/base.apk/classes3.dex”, zip file “/data/app/~~LVTWN8DGRcSyfrUoVu2Arw==/com.example.myapplication-R6jpmC6qTDVtIy-1r-YrBg==/base.apk”],nativeLibraryDirectories=[/data/app/~~LVTWN8DGRcSyfrUoVu2Arw==/com.example.myapplication-R6jpmC6qTDVtIy-1r-YrBg==/lib/x86, /data/app/~~LVTWN8DGRcSyfrUoVu2Arw==/com.example.myapplication-R6jpmC6qTDVtIy-1r-YrBg==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at org.reflections.scanners.AbstractScanner.(AbstractScanner.java:21)
at org.reflections.scanners.TypeAnnotationsScanner.(TypeAnnotationsScanner.java:8)
at org.reflections.util.ConfigurationBuilder.(ConfigurationBuilder.java:53)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.registerSubtypes(NeuralNetConfiguration.java:456)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.configureMapper(NeuralNetConfiguration.java:421)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.initMapper(NeuralNetConfiguration.java:394)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration.(NeuralNetConfiguration.java:123)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration$Builder.build(NeuralNetConfiguration.java:1223)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration$ListBuilder.build(NeuralNetConfiguration.java:279)
at com.example.myapplication.MainActivity.aa(MainActivity.java:112)
at com.example.myapplication.MainActivity.onCreate(MainActivity.java:48)
at android.app.Activity.performCreate(Activity.java:7994)
at android.app.Activity.performCreate(Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I would greatly appreciate any help you can offer with this problem.
Thanks in advance