Java 从.jar生成.so libs

Java 从.jar生成.so libs,java,javacv,javacpp,Java,Javacv,Javacpp,现在我正试图将JavaCV添加到我的项目中,我一直在从javacpp.jar获取.so libs 文档: 将javacpp.jar文件复制到libs/子目录中,然后 运行此命令以libs/armeabi/: $java-jarlibs/javacpp.jar-classpath bin/ -类路径bin/classes/\ -属性 -Dplatform.root=/path/to/android ndk/\ -Dplatform.compiler=/path/to/ -自由裁量// 所以我的版

现在我正试图将JavaCV添加到我的项目中,我一直在从javacpp.jar获取.so libs 文档:

  • 将javacpp.jar文件复制到libs/子目录中,然后
  • 运行此命令以libs/armeabi/:
    $java-jarlibs/javacpp.jar-classpath bin/
    -类路径bin/classes/\
    -属性
    -Dplatform.root=/path/to/android ndk/\
    -Dplatform.compiler=/path/to/
    -自由裁量//

  • 所以我的版本是这样的

    java-jarlibs/javacpp.jar-cp/build/classes/-properties android arm
    -Dplatform.root=D:/nazing_THINGS/android-ndk-r13
    -Dplatform.compiler=D:/nazing_THINGS/android-ndk-r13/toolschains/arm-linux-androideabi-4.9/prebuild/windows-x86_64/bin/arm-linux-androideabi-g++-D libs/armeabi

    我试图在我的项目文件夹中提取它,并出现以下错误:

    Exception in thread "main" java.lang.NoClassDefFoundError: build/classes/main/co
    m/mobilestreamer/MobileStreamer$$Lambda$1 (wrong name: com/mobilestreamer/Mobile
    Streamer$$Lambda$1)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at org.bytedeco.javacpp.tools.UserClassLoader.findClass(UserClassLoader.
    java:72)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at org.bytedeco.javacpp.tools.ClassScanner.addClass(ClassScanner.java:61
    )
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingFile(ClassScanner.
    java:71)
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingDir(ClassScanner.j
    ava:83)
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingDir(ClassScanner.j
    ava:81)
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingDir(ClassScanner.j
    ava:81)
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingDir(ClassScanner.j
    ava:81)
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingDir(ClassScanner.j
    ava:81)
            at org.bytedeco.javacpp.tools.ClassScanner.addMatchingDir(ClassScanner.j
    ava:81)
            at org.bytedeco.javacpp.tools.ClassScanner.addPackage(ClassScanner.java:
    95)
            at org.bytedeco.javacpp.tools.Builder.classesOrPackages(Builder.java:607
    )
            at org.bytedeco.javacpp.tools.Builder.main(Builder.java:805)
    
    由于我是cmd和其他相关人员的新手,我无法解决这个问题。那么我应该怎么做才能让它工作呢?

    Thx.

    如果在命令末尾附加包含
    本机
    方法的类,是否有效?似乎它在加载不相关的类时遇到了问题。@Samuel Audet只有一个类使用本机方法。将其添加到命令末尾后,它会删除“线程中的异常”main“java.lang.ClassNotFoundException:StreamingPagePresen ter”。在java中,类名包括包名…@Samuel Audet是的,我的错,但是仍然得到相同的错误,那么该类不在您用
    -cp
    指定的路径中。如果在命令末尾附加包含
    本机方法的类,是否有效?似乎它在加载不相关的类时遇到了问题。@Samuel Audet只有一个类使用本机方法。在将其添加到命令末尾后,它会删除“线程中的异常”main“java.lang.ClassNotFoundException:StreamingPagePresen ter”。在java中,类名包括包名…@Samuel Audet是的,我的错,但仍然得到相同的错误。然后该类不在您用
    -cp
    指定的路径中。