ActiveAndroid ‘duplicate column name ’异常解决


使用ActiveAndroid 管理数据库时,出现这样一个异常,跨版本升级,数据库框架初始化时,出现异常,原因很简单,旧版本直接升级到新版本,数据库在创建表时,已经有这个字段,在进行sql 脚本更新字段时,会提示重复创建字段的异常:

version n:

version n+1: add a table user

version n+2: alter user add column gender integer

异常提示:

android.database.sqlite.SQLiteException
duplicate column name: last_at (Sqlite code 1): , while compiling: ALTER TABLE user ADD last_at integer, (OS error - 2:No such file or directory)

因为这个框架很久没有人维护了,只好修改源码,只需改两个字母就可以避免crash,把源码的DatabaseHelper.java 中executeMigrations 循环执行sql的方法中的catch(IOException e ) 去掉 IE ,捕获所有Exception即可。

为了方便直接把修改好的源码push到 jitpack 网站上了,这样把之前项目的引用移除,提供成自己的引用,就避免了这个问题。

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

添加/替换:

	dependencies { compile 'com.github.aikongmeng:ActiveAndroid:3.1'}

github链接:

https://github.com/pardom/ActiveAndroid

https://github.com/aikongmeng/ActiveAndroid




你可能感兴趣的:(Android)