java - android - RealmRecycle View 上的 java.lang.NoClassDefFoundError

标签 java android realm realm-mobile-platform

我在 java.lang.NoClassDefFoundError 上出现错误:io.realm.RealmRecyclerViewAdapter$1 我正在使用 Realm compile 'io.realm:android-adapters:2.0.0'classpath "io.realm:realm-gradle-plugin:2.2.1" 当我构建名为 AdapterJadwalKuliahRV 的 RealmAdapter 时

public class AdapterJadwalKuliahRV extends RealmRecyclerViewAdapter<JadwalKuliahModel, AdapterJadwalKuliahRV.MyViewHolder> {



public AdapterJadwalKuliahRV(OrderedRealmCollection<JadwalKuliahModel> data){
    super(data, true);
    setHasStableIds(true);
}



@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.row_jk, parent, false);
    return new MyViewHolder(itemView);
}


@Override
public void onBindViewHolder(MyViewHolder holder, int position){
    final JadwalKuliahModel jk = getItem(position);
    holder.data= jk;
    holder.txtHari.setText(jk.getHari_jk());
    holder.txtMakul.setText(jk.getMakul_jk());
    holder.txtJam.setText(jk.getWaktu_jk());
    holder.txtDosen.setText(jk.getDosen_jk());
    holder.txtRuangan.setText(jk.getRuangan_jk());
    holder.txtKelas.setText(jk.getKelas_jk());
}

@Override
public int getItemCount(){ 
   return data.size(); 
}


class MyViewHolder extends RecyclerView.ViewHolder{

    private TextView txtHari,txtMakul,txtJam,txtDosen,txtRuangan,txtKelas;
    private JadwalKuliahModel data;

    private MyViewHolder(View view){
        super(view);
        txtHari = (TextView) view.findViewById(R.id.rowhariJK);
        txtJam = (TextView) view.findViewById(R.id.rowJamjk);
        txtMakul = (TextView) view.findViewById(R.id.rowMakul);
        txtDosen = (TextView) view.findViewById(R.id.rowDosen);
        txtRuangan = (TextView) view.findViewById(R.id.rowRuanganjk);
        txtKelas = (TextView) view.findViewById(R.id.rowKelasJK);

    }
}

这是设置该适配器并实现我的 Activity 的方法

private void setupRecycler() {
    realm.getDefaultInstance();
    AdapterJadwalKuliahRV = new AdapterJadwalKuliahRV(realm.where(JadwalKuliahModel.class).findAll());
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(AdapterJadwalKuliahRV);
    recyclerView.setHasFixedSize(true);

}

这是我的模型

private static AtomicInteger INTEGER_COUNTER = new AtomicInteger(0);


@PrimaryKey
private int no_jk;

private String hari_jk;
private String waktu_jk;
private String makul_jk;
private String ruangan_jk;
private String dosen_jk;
private String kelas_jk, created_at, updated_at;
private String Author;
private int noonline_j;
final static public String jkSort ="";

public JadwalKuliahModel() {
}

public JadwalKuliahModel(int no_jk, String hari_jk, String waktu_jk, String makul_jk, String ruangan_jk, String dosen_jk, String kelas_jk, String created_at, String updated_at, String author, int noonline_j) {
    this.no_jk = no_jk;
    this.hari_jk = hari_jk;
    this.waktu_jk = waktu_jk;
    this.ruangan_jk = ruangan_jk;
    this.makul_jk = makul_jk;
    this.dosen_jk = dosen_jk;
    this.kelas_jk = kelas_jk;
    this.created_at = created_at;
    this.updated_at = updated_at;
    this.Author = author;
    this.noonline_j = noonline_j;
}

使用 Setter 和 Getter

但是,我对 RealmRecyclerViewAdapter 有问题 像this

请帮助我..

最佳答案

compile 'io.realm:android-adapters:2.0.0'仅支持 Realm-Java 3.0.0 及以上版本(例如当前最新的 classpath "io.realm:realm-gradle-plugin:3.1.2" )。

使用realm-android-adapters对于 Realm 2.x,您需要使用 compile 'io.realm:android-adapters:1.5.0 .

您收到此异常是因为 OrderedRealmCollectionChangeListener Realm 3.0.0之前不存在

关于java - android - RealmRecycle View 上的 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43374716/

相关文章:

java - LWJGL 只渲染一个对象

java - 如何访问 Galaxy S5 心率传感器?

android - 有没有办法在 IntelliJ IDE 中提取 Android 项目中的字符串资源?

android: 实现推送通知

ios - Realm 无法在后台线程中解密数据库错误

swift2 - 如何将 Realm 对象移动到全局范围

java - 如何从字节数组中提取文件扩展名

java - 如何使用具有定义的命名空间模式的 saxon 验证无命名空间文件?

java - Android:从通知写入 Realm 数据库

java - Spring MVC - 处理错误并传递给 View 的通用方法