android Bug记录之 GreenDao 使用sqlcipher加密后导致分页功能失效

项目中使用的greendao版本为

implementation 'org.greenrobot:greendao:3.2.2'

sqlcipher版本为:

implementation 'net.zetetic:android-database-sqlcipher:3.5.9@aar'

项目中调用的代码为:

 writableDb = devOpenHelper.getEncryptedWritableDb("your key");
public List<Collect> getCollectList(int page, int count){
        return writableDaoSession.getCollectDao()
                .queryBuilder()
                .orderDesc(CollectDao.Properties.Id)
                .limit(count)
                .offset(page*count)
                .list();
    }

测试发现offset不论设置为什么值都是无效的,后面发现,在app的build.gradle中设置了:

    ndk {
            abiFilters 'armeabi','x86'
        }

即只保留了该加密库的armeabi和x86目录,而原本该加密库的so目录应该有:

  • armeabi
  • armeabi-v7a
  • x86
  • x86_64
  • arm64_v8a

解决方法:
1.去掉以下代码:

    ndk {
            abiFilters 'armeabi','x86'
        }

2.设置为:

    ndk {
            abiFilters 'armeabi','x86','armeabi-v7a'
        }

猜你喜欢

转载自blog.csdn.net/Samlss/article/details/81236862
今日推荐