무슨 오류인지 저는 도저히 찾지를 못하겠네요.....
오류내용 :
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.gjsxj.examtable, PID: 16992
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gjsxj.examtable/com.example.gjsxj.examtable.MainActivity}: io.realm.exceptions.RealmMigrationNeededException: Field count is less than expected - expected 3 but was 2
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3027)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:101)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:73)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1786)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: io.realm.exceptions.RealmMigrationNeededException: Field count is less than expected - expected 3 but was 2
at io.realm.UserRealmProxy.validateTable(UserRealmProxy.java:196)
at io.realm.DefaultRealmModuleMediator.validateTable(DefaultRealmModuleMediator.java:46)
at io.realm.Realm.initializeRealm(Realm.java:480)
at io.realm.Realm.createAndValidateFromCache(Realm.java:423)
at io.realm.Realm.createInstance(Realm.java:387)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:346)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:284)
at io.realm.Realm.getDefaultInstance(Realm.java:281)
at com.example.gjsxj.examtable.MainActivity.onCreate(MainActivity.java:35)
at android.app.Activity.performCreate(Activity.java:7117)
at android.app.Activity.performCreate(Activity.java:7108)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1262)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2867)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3027)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
자바
package com.example.gjsxj.examtable;
import android.app.Activity;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import io.realm.Realm;
import io.realm.RealmChangeListener;
import io.realm.RealmResults;
public class MainActivity extends AppCompatActivity{
private Spinner mDepartment;
private Spinner mGrade;
private Spinner mClass;
private Realm mRealm;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDepartment = (Spinner)findViewById(R.id.department_spinner);
mGrade = (Spinner)findViewById(R.id.grade_spinner);
mClass = (Spinner)findViewById(R.id.class_spinner);
mRealm = Realm.getDefaultInstance();
ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.department_array,
android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mDepartment.setAdapter(adapter1);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.grade_array,
android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mGrade.setAdapter(adapter2);
ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(this, R.array.class_array,
android.R.layout.simple_spinner_item);
adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mClass.setAdapter(adapter3);
}
@Override
protected void onDestroy() {
super.onDestroy();
mRealm.removeAllChangeListeners();
mRealm.close();
}
public void information(View view) {
mRealm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
if (realm.where(User.class)
.equalTo("department", mDepartment.getBaseline())
.count() == 0) {
User user = mRealm.createObject(User.class);
user.setDepartment(mDepartment.toString());
user.setGrade(mGrade.toString());
user.setGrade_class(mClass.toString());
}
}
});
}
}