ActiveAndroid出错,没有这样的表

时间:2016-06-10 15:20:59

标签: android orm activeandroid android-database

我的宣言:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    startService(new Intent(this, FireBaseService.class));
}

这里是AppClass:

<application
        android:name=".AppClass"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="AA_DB_NAME"
            android:value="mydb.db" />
        <meta-data
            android:name="AA_DB_VERSION"
            android:value="1" />
        <activity
            android:name=".ActivityMain"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>

型号:

public class AppClass extends Application {
public static Context context;

@Override
public void onCreate() {
    super.onCreate();

    ActiveAndroid.initialize(this);
    context = getApplicationContext();
}
}

保存图书并检索:

@Table(name = "Books")
public class Book extends Model {

    @Column(name = "Author")
    public String author;

    @Column(name = "Title")
    public String title;

    public Book() {
        super();
    }
}

但在运行应用程序时出现此错误:

 Book b = new Book();
        b.title = "TheFaultInOurStar";
        b.author = "JohnGreen";
        b.save();

 ArrayList<Book> books = new Select().all().from(Book.class).execute();
 Log.e("Log", "SizeOfBooks:" + books.size());

为什么Id字段添加到表架构? 我在清单中增加AA_DB_VERSION但仍然存在错误。 甚至应用程序在其他模拟器和手机上的新运行再次得到该错误。

哪里有问题?

1 个答案:

答案 0 :(得分:1)

尝试将此元数据放在AndroidManifest上的应用程序标记内。

<meta-data
    android:name="AA_MODELS"
     android:value="com.yourpackage.yourmodeldir.Book" />

或者如果它没有解决问题。尝试卸载您的应用,然后重新安装。