Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有ORMLite的Android项目无法在ant中构建_Android_Ant_Ormlite - Fatal编程技术网

带有ORMLite的Android项目无法在ant中构建

带有ORMLite的Android项目无法在ant中构建,android,ant,ormlite,Android,Ant,Ormlite,我有一个带有ORMLite库的Android项目,我想在F-Droid上发布。该项目在Eclipse中编译时没有问题。然而,F-Droid使用ant构建项目,在他们这方面,项目未能构建,错误代码如下(总结): private Dao<Habit, Integer> habitDao; private Dao<Day, Integer> dayDao; public Dao<Habit, Integer> getHabitDao() throws SQLExc

我有一个带有ORMLite库的Android项目,我想在F-Droid上发布。该项目在Eclipse中编译时没有问题。然而,F-Droid使用ant构建项目,在他们这方面,项目未能构建,错误代码如下(总结):

private Dao<Habit, Integer> habitDao;
private Dao<Day, Integer> dayDao;

public Dao<Habit, Integer> getHabitDao() throws SQLException {
    if (habitDao == null) {
        habitDao = getDao(Habit.class);
    }
    return habitDao;
}

public Dao<Day, Integer> getDayDao() throws SQLException {
    if (dayDao == null) {
        dayDao = getDao(Day.class);
    }
    return dayDao;
}
这与这里描述的问题相同:,应该是Java编译器中的一个bug

现在,我不是一个专业的开发人员,所以添加显式强制转换的含义对我来说并不直观。下面是我如何修改代码的:

public Dao<Habit, Integer> getHabitDao() throws SQLException {
    if (habitDao == null) {
        habitDao = getDao(Habit.class);
    }
    return (Dao<Habit, Integer>)habitDao;
}

public Dao<Day, Integer> getDayDao() throws SQLException {
    if (dayDao == null) {
        dayDao = getDao(Day.class);
    }
    return (Dao<Day, Integer>)dayDao;
}
public Dao getHabitDao()抛出SQLException{
if(habitDao==null){
habitDao=getDao(习惯类);
}
返回(道)habitDao;
}
公共Dao getDayDao()引发SQLException{
if(dayDao==null){
dayDao=getDao(Day.class);
}
返回(道)dayDao;
}
这就解决了我的问题,ant在我这边成功地构建了这个项目,并且应用程序工作顺利。然而,F-Droid的ant构建过程仍然失败,错误与上述相同。现在我迷路了,因为我不能再“调试”这个了,就我的ant而言,项目没有问题,因此我所做的任何更改都是纯粹的猜测

之后我又试了一件事:

@SuppressWarnings("unchecked")
public Dao<Habit, Integer> getHabitDao() throws SQLException {
    if (habitDao == null) {
        habitDao = (Dao<Habit, Integer>)getDao(Habit.class);
    }
    return (Dao<Habit, Integer>)habitDao;
}

@SuppressWarnings("unchecked")
public Dao<Day, Integer> getDayDao() throws SQLException {
    if (dayDao == null) {
        dayDao = (Dao<Day, Integer>)getDao(Day.class);
    }
    return (Dao<Day, Integer>)dayDao;
}
@SuppressWarnings(“未选中”)
公共Dao getHabitDao()引发SQLException{
if(habitDao==null){
habitDao=(Dao)getDao(habity.class);
}
返回(道)habitDao;
}
@抑制警告(“未选中”)
公共Dao getDayDao()引发SQLException{
if(dayDao==null){
dayDao=(Dao)getDao(Day.class);
}
返回(道)dayDao;
}
但这纯粹是猜测,在F-Droid方面,构建过程仍然会失败,并出现相同的错误

任何关于如何解决这一问题的建议都将不胜感激


编辑:该应用程序是开源的,因此欢迎任何愿意尝试使用ant自行构建它的人:

克隆您的存储库。叫做ant release,很好用,谢谢你的试用。F-Droid上的一些应用程序已经开始出现这个问题,所以这可能是他们自己的问题。
@SuppressWarnings("unchecked")
public Dao<Habit, Integer> getHabitDao() throws SQLException {
    if (habitDao == null) {
        habitDao = (Dao<Habit, Integer>)getDao(Habit.class);
    }
    return (Dao<Habit, Integer>)habitDao;
}

@SuppressWarnings("unchecked")
public Dao<Day, Integer> getDayDao() throws SQLException {
    if (dayDao == null) {
        dayDao = (Dao<Day, Integer>)getDao(Day.class);
    }
    return (Dao<Day, Integer>)dayDao;
}