带有ORMLite的Android项目无法在ant中构建
我有一个带有ORMLite库的Android项目,我想在F-Droid上发布。该项目在Eclipse中编译时没有问题。然而,F-Droid使用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
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;
}