我如何使用Maven,继续获得NoclassDeffoundError



Maven的新手尝试添加依赖关系

  <dependency>
   <groupId>com.koushikdutta.ion</groupId>
   <artifactId>ion</artifactId>
   <version>1.2.4</version>
</dependency>

然后我更新项目,然后看到Maven Dependencies文件夹中生成的必要JAR文件

所以在我的活动中我想使用离子,所以我称其为

try {
        Ion.with(mContext, uri).asBitmap().setCallback(new FutureCallback<Bitmap>() {
            @Override
            public void onCompleted(Exception e, Bitmap result) {
                try {
                    if (e != null) {
                        throw e;
                    }
                    setImage(v, result);
                }
                catch (Exception ex) {
                    e.printStackTrace();
                }
            }
        });
    }
    catch (Exception ex) {
        ex.printStackTrace();
    }

我进行了必要的导入,并且文件中没有错误,但是在运行时

    03-07 21:05:40.492: E/AndroidRuntime(778): FATAL EXCEPTION: pool-1-thread-2
03-07 21:05:40.492: E/AndroidRuntime(778): java.lang.NoClassDefFoundError: com.koushikdutta.ion.Ion

我缺少什么来完成这项工作?

如何执行程序?来自Maven?从命令行?听起来执行环境与您的Maven POM文件中的编译时环境共享相同的类路径。

首先,我可以确认依赖项确实包含缺失的类:

  • http://search.maven.org/#search|ga|1qul; g:"com.koushikdutta.ion" AND A A:"22" AND V V:!.21.2。4%22和%20FC%3A%22com.koushikdutta.ion.ion%22

这并不真正令人惊讶,因为您声明代码确实编译了。问题是 Runtime 的类Path Management。

选项1:使用Maven启动应用程序

使用EXEC插件从Maven内部运行代码。这将根据您在POM中声明的依赖项设置程序类路径:

  • 如何使用Maven执行程序?

选项2:创建可执行JAR

一个独立的罐子,了解其依赖性是什么(没有POM):

  • 如何使用Maven创建一个具有依赖项的可执行JAR?
  • http://blog.sonatype.com/2009/08/how-to-make-an-executable-jar-in-maven/

有关JAR内部的更多详细信息,我建议阅读Jar Spec,特别是"主类"one_answers" class-path"属性。

相关内容

  • 没有找到相关文章

最新更新