Gaurav Agarwal
Gaurav Agarwal

Reputation: 19102

Android Runtime Error "java.lang.NoClassDefFoundError: org.apache.commons.collections.CollectionUtils "

I am trying to use org.apache.commons.collections.CollectionUtils in Android. The sample is below

import java.util.ArrayList;

import org.apache.commons.collections.CollectionUtils;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class CheckCommonsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    String email1 = "[email protected]";
    String email2 = "[email protected]";
    String email3 = "[email protected]";
    String email4 = null;       

    ArrayList<String> emailList1 = new ArrayList<String>();
    emailList1.add(email4);
    emailList1.add(email1);
    emailList1.add(email2);
    emailList1.add(email3);

    ArrayList<String> emailList2 = new ArrayList<String>();
    emailList2.add(email3);
    emailList2.add(email2);
    emailList2.add(email1);

    boolean isEqual = CollectionUtils.isEqualCollection(emailList1,
 emailList2);
    TextView text = (TextView) findViewById(R.id.text);
    text.setText(String.valueOf(isEqual));
   }
 }

I have imported commons-collections-3.2.1.jar to Build Path of Android Project, but I am getting error java.lang.NoClassDefFoundError: org.apache.commons.collections.CollectionUtils at runtime.

Edit1

Android Project Artifact

Thanks

Upvotes: 0

Views: 4479

Answers (1)

207
207

Reputation: 3804

You have to put the library in /libs (not /lib) folder of your android project

Edit: I was assuming that you put it in /lib folder because this is a common failure. In your added screenshot can be seen that you included the lib as external jar. Anyway..whether you put it in /lib or as external jar the solution is the same: create /libs folder and put the lib there

Upvotes: 6

Related Questions