2016-06-10 4 views
0

Мои Manifest:ActiveAndroid получил ошибку, нет такой таблицы

<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> 

Здесь AppClass:

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()); 

но при запуске приложения я получил эту ошибку:

Error inserting Title=TheFaultInOurStar Author=JohnGreen rolling Id=null 
                 android.database.sqlite.SQLiteException: no such table: Books (code 1): , while compiling: INSERT INTO Books(Title,Author,Id) VALUES (?,?,?) 

почему Id поле добавить в таблицу схемы? Я увеличиваю AA_DB_VERSION в манифесте, но ошибка все еще остается. даже приложение в новом режиме на другом эмуляторе и мобильном телефоне снова получило эту ошибку.

где проблема?

ответ

1

Попробуйте поместить эти метаданные в тег приложения на AndroidManifest.

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

Или, если это не поможет устранить проблему. Попробуйте удалить приложение, а затем переустановите его.

+0

еще не работает, и получить эту ошибку: нет такой таблицы: Книги (код 1):, при компиляции: SELECT ALL * FROM Books – javaddroid

+0

Я думаю, что весь ваш код прав. Вы проверили андроид: name = ". AppClass" правильно ссылается на ваш класс приложения? – ikhsan