Android Glide库NoClassDefFoundError

时间:2015-07-14 04:59:31

标签: java android packaging android-glide

我错误地使用了Glide库吗?可能是什么问题?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView iv = (ImageView) findViewById(R.id.imageView1);

    Glide.with(this).load(R.drawable.salads_caesar_salad).into(iv);
}

enter image description here

4 个答案:

答案 0 :(得分:2)

如果您的代码编译得很好,很可能您在编译类路径上拥有正确的依赖关系。如果您使用Android Studio / Gradle,ProGuard可能出于某种原因以某种方式剥离Glide类,但它确实不应该因为您实际使用它而停止。

上述矛盾以及您的LogCat屏幕截图是Eclipse ADT或Android设备监视器(monitor.bat)的这一事实留下了一个选项:您没有export your dependency ;尝试以下方法(参见链接手册中的屏幕截图):

  1. 右键单击Android应用程序项目
  2. 属性
  3. Java构建路径
  4. 订单和导出
  5. 确保勾选glide.jar
  6. 或者考虑在Android Studio(适用于Android开发的官方Google产品)或IntelliJ IDEA 14+中重新创建项目并复制您的来源; IntelliJ Android插件比Eclipse ADT更好地支持Android和现代构建工具。我自己真的反对过渡,但是你看到它有效,因为我现在正在倡导它。从长远来看,它值得花一两天时间。

答案 1 :(得分:1)

你需要将Glide库添加到你的android项目中。

如果你使用gradle:

dependencies {
    compile 'com.github.bumptech.glide:glide:3.6.0'
    compile 'com.android.support:support-v4:19.1.0'
}

如果您使用的是maven:

<dependency>
  <groupId>com.github.bumptech.glide</groupId>
  <artifactId>glide</artifactId>
  <version>3.6.0</version>
  <type>aar</type>
</dependency>
<dependency>
  <groupId>com.google.android</groupId>
  <artifactId>support-v4</artifactId>
  <version>r7</version>
</dependency>

您还可以在Eclipse中直接将库添加到项目中:右键单击项目的属性,然后单击“库”部分,然后单击“添加”以添加库。

如果您使用Android Studiohttp://www.truiton.com/2015/02/android-studio-add-library-project/

答案 2 :(得分:0)

你似乎错误地导入了滑翔库 -

NoClassDefFoundError结果是android的事实 build没有找到你的滑翔库。

在android工作室中,您可以通过添加“工程结构”添加它 库滑动到你的依赖。 查看一般策略here

答案 3 :(得分:0)

我认为您只能加载URL,并且您只能根据文档使用.error()和.placeholder()方法中的Resources。 https://github.com/bumptech/glide

当你可以在imageview中直接设置资源时,为什么要使用滑行:

iv.setImageResource(R.drawable.salads_caesar_salad);

我希望它有所帮助!