java.lang.RuntimeException:无法启动活动ComponentInfo android.datab



当我尝试执行此应用程序时,我收到了此错误。我不知道为什么我会收到这个错误。在创建表时,它是将其留空还是尝试用值填充以启动,因为我的应用程序使用EasyModbusJava库,并且需要一个从属ID来连接,我没有传递该ID,我也不希望它当前能够连接。如果这只是创建表的问题,我需要做什么更改?

08-21 13:31:48.342 8821-8821/?E/合子:v208-21 13:31:48.344 8821-8821/?E/Zygote:accessInfo:008-21 13:31:49.407 8821-8821/com.wavefloatrooms.wavefloatrooms E/SQLiteLog:(1)靠近"Rooms":语法错误08-21 13:31:49.418 8821-8821/com.wavefloatrooms.wavefloatrooms E/AndroidRuntime:致命异常:main流程:com.wavefloatrooms.wavefloatrooms,PID:8821java.lang.RuntimeException:无法启动活动ComponentInfo{com.wavefloatrooms.wavefloatroomes.com/wavefloatooms.OverviewListActivity}:android.database.sqlite.SQLiteException:靠近"Rooms":语法错误(代码1):,编译时:创建表Float-Rooms(_id integer主键自动递增,从id,房间名称)#################################################################错误代码:1(SQLITE_Error)原因:SQL(查询)错误或缺少数据库。(靠近"Rooms":语法错误(代码1):,编译时:create table Float Rooms(_id integer主键autoincrement,slave id,room name))#################################################################在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:2947)在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3008)在android.app.ActivityThread.-wrap14(ActivityThreads.java)在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1650)在android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Looper.loop(Looper.java:154)在android.app.ActivityThread.main(ActivityThreads.java:6688)位于java.lang.reflect.Method.ioke(本机方法)网址:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:1358)由:android.database.sqlite.SQLiteException:靠近"Rooms":语法错误(代码1):,编译时:create table Float Rooms(_id integer主键autoincrement,slave id,room name)#################################################################错误代码:1(SQLITE_Error)原因:SQL(查询)错误或缺少数据库。(靠近"Rooms":语法错误(代码1):,编译时:create table Float Rooms(_id integer主键autoincrement,slave id,room name))#################################################################在android.database.sqlite.SQLiteConnection.naturePrepareStatement(Native Method)在android.database.sqlite.SQLiteConnection.acquisitePreparedStatement(SQLiteConnection.java:1005)在android.database.sqlite.SQLiteConnectionprepare(SQLiteConnection.java:570)在android.database.sqlite.SQLiteSession.reprepare(SQLiteSession.java:588)在android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)在android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)在android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1976)在android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1907)网址:com.wavefloatrooms.wavefloatrooms.database.FloatBaseHelper.onCreate(FloatBaseHelper.java:23)在android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelpr.java:251)在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelpr.java:163)网址:com.wavefloatrooms.wavefloatrooms。FloatLab。(FloatLab.java:35)网址:com.wavefloatrooms.wavefloatrooms.FloatLab.get(FloatLab.java:28)网址:com.wavefloatrooms.wavefloatrooms。OverviewListFragment.updateUI(OverviewListFragment.java:45)网址:com.wavefloatrooms.wavefloatrooms。OverviewListFragment.onCreateView(OverviewListFragment.java:34)在android.support.v4.app.FFragment.performCreateView(Fragment.java:2192)位于android.support.v4.app.FFragmentManagerImpl.moveToState(FragmentManager.java:1299)位于android.support.v4.app.FragageManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)位于android.support.v4.app.FFragmentManagerImpl.moveToState(FragmentManager.java:1595)位于android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:758)在android.support.v4.app.FFragmentManagerImpl.executeOps(FragmentManager.java:2363)在android.support.v4.app.FragageManagerImpl.executeOpsTogether(FragmentManager.java:2149)在android.support.v4.app.FragageManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2103)08-21 13:31:49.418 8821-8821/com.wavefloatrooms.wavefloatrooms E/AndroidRuntime:在android.support.v4.app.FFragmentManagerImpl.execPendingActions(FragmentManager.java:2013)在android.support.v4.app.FFragmentController.execPendingActions(FragmentControlr.java:388)在android.support.v4.app.FrageActivity.onStart(FragmentActivity.java:607)在android.support.v7.app.AppCompatActivity.onStart上(AppCompatActivity.java:178)在android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1256)在android.app.Activity.performStart(Activity.java:6929)在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:2910)…还有9个

public class FloatBaseHelper extends SQLiteOpenHelper {
private static final int VERSION = 1;
private static final String DATABASE_NAME = "floatBase.db";
public FloatBaseHelper(Context context){
super(context, DATABASE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table " + RoomTable.NAME + "(" +
"_id integer primary key autoincrement, " + RoomTable.Cols.SLAVE_ID +
", " + RoomTable.Cols.ROOM_NAME + ")");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public class FloatRoomCursorWrapper extends CursorWrapper {
public FloatRoomCursorWrapper(Cursor cursor) {
super(cursor);
}
public FloatRoom getFloatRoom(){
int slaveID = getInt(getColumnIndex(RoomTable.Cols.SLAVE_ID));
String roomName = getString(getColumnIndex(RoomTable.Cols.ROOM_NAME));
FloatRoom room = new FloatRoom(slaveID);
room.setRoomName(roomName);
return room;
}
}
public class OverviewListFragment extends Fragment {
private RecyclerView mRoomRecyclerView;
private RoomAdapter mAdapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_overview_list, container, false);
mRoomRecyclerView = (RecyclerView) view.findViewById(R.id.floatroom_recylerview);
mRoomRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
updateUI();
return view;
}
@Override
public void onResume() {
super.onResume();
updateUI();
}
private void updateUI() {
FloatLab floatlab = FloatLab.get(getActivity());
List<FloatRoom> rooms = floatlab.getFloatRooms();
if(mAdapter == null){
mAdapter = new RoomAdapter(rooms);
mRoomRecyclerView.setAdapter(mAdapter);
}else{
mAdapter.setFloatRooms(rooms);
mAdapter.notifyDataSetChanged();
}
}
private class RoomHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView mTimeRemainingTextView;
private TextView mRoomNameTextView;
private ImageButton mControlPanelBtn;
private ProgressBar mTimeProgressBar;
private FloatRoom mFloatRoom;
public RoomHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.list_item_floatroom, parent, false));
initializeVariables();
}
private void initializeVariables() {
mTimeRemainingTextView = (TextView) itemView.findViewById(R.id.time_remaining_textView);
mRoomNameTextView = (TextView) itemView.findViewById(R.id.room_name_textView);
mControlPanelBtn = (ImageButton) itemView.findViewById(R.id.control_panel_btn);
mTimeProgressBar = (ProgressBar) itemView.findViewById(R.id.progressBar);
}
public void bind(FloatRoom room) {
mFloatRoom = room;
mRoomNameTextView.setText(mFloatRoom.getRoomName());
mTimeRemainingTextView.setText("Time Remaining: " + mFloatRoom.getSessionTimeRemaining() + " minutes");
mControlPanelBtn.setOnClickListener(this);
}

@Override
public void onClick(View view) {
startControlPanel();
}
private void startControlPanel() {
Intent intent;
switch (mFloatRoom.getRoomType()){
case 0:
intent = new StandardRoomActivity().newIntent(getActivity(), mFloatRoom.getSlaveID());
startActivity(intent);
break;
case 1:
intent = new EliteRoomActivity().newIntent(getActivity(), mFloatRoom.getSlaveID());
startActivity(intent);
break;
default:
Toast.makeText(getActivity(), "ERROR Starting Auto mode!", Toast.LENGTH_LONG);
}
}
}
private class RoomAdapter extends RecyclerView.Adapter<RoomHolder> {
private List<FloatRoom> mRooms;
public RoomAdapter(List<FloatRoom> rooms){
mRooms = rooms;
}
@Override
public RoomHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
return new RoomHolder(layoutInflater, parent);
}
@Override
public void onBindViewHolder(RoomHolder holder, int position) {
FloatRoom room = mRooms.get(position);
holder.bind(room);
}
@Override
public int getItemCount() {
return mRooms.size();
}
public void setFloatRooms(List<FloatRoom> rooms){
mRooms = rooms;
}
}
}

RoomTable.NAME将显示为Float Rooms。表名中不能有空格。将其重命名为其他没有空格的内容。

相关内容

最新更新