I have a problem with active-android. I am trying to find the user's location, number of passengers and general direction. I want to save them in the phone storage in a table called "Split" using activeAndroid. But whenever I call the save() method, I get a long list of errors. I tried reinstalling the application and changing the name of my database in the manifest, but none of these solutions worked. Please keep in mind that I am very new to programming, so if possible, act as if I were 5. Thank you :)
Here is the output of LogCat
11-03 23:27:51.094 2905-2905/dk.specialisering.splitcab E/SQLiteLog﹕ (1) no such table: Splits 11-03 23:27:51.115 2905-2905/dk.specialisering.splitcab E/SQLiteDatabase﹕ Error inserting passengers=1 Id=null startLong=9.92773733 direction=North startLat=57.0487396 android.database.sqlite.SQLiteException: no such table: Splits (code 1): , while compiling: INSERT INTO Splits(passengers,Id,startLong,direction,startLat) VALUES (?,?,?,?,?) at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1118) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:691) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1589) at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1461) at com.activeandroid.Model.save(Model.java:153) at dk.specialisering.splitcab.MainActivity.save(MainActivity.java:127) at dk.specialisering.splitcab.MainActivity$1.onClick(MainActivity.java:37) at android.view.View.performClick(View.java:4475) at android.view.View$PerformClick.run(View.java:18786) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) at dalvik.system.NativeStart.main(Native Method) 11-03 23:27:51.175 2905-2905/dk.specialisering.splitcab E/SQLiteLog﹕ (1) no such table: Splits 11-03 23:27:51.175 2905-2905/dk.specialisering.splitcab E/SQLiteDatabase﹕ Error inserting passengers=1 Id=null startLong=9.92773733 direction=North startLat=57.0487396 android.database.sqlite.SQLiteException: no such table: Splits (code 1): , while compiling: INSERT INTO Splits(passengers,Id,startLong,direction,startLat) VALUES (?,?,?,?,?) at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1118) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:691) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1589) at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1461) at com.activeandroid.Model.save(Model.java:153) at dk.specialisering.splitcab.MainActivity.save(MainActivity.java:127) at dk.specialisering.splitcab.MainActivity$1.onClick(MainActivity.java:37) at android.view.View.performClick(View.java:4475) at android.view.View$PerformClick.run(View.java:18786) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) at dalvik.system.NativeStart.main(Native Method)
Here is my Model class for a table
@Table(name = "Splits") public class Splits extends Model { @Column(name = "startLat") public double startLat; @Column(name = "startLong") public double startLong; @Column(name = "passengers") public int passengers; @Column(name = "direction") public String direction; public Splits() { super(); } public Splits(double startLat, double startLong, int passengers, String direction) { this.startLat = startLat; this.startLong = startLong; this.passengers = passengers; this.direction = direction; } }
My activity
package dk.specialisering.splitcab; import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.media.Image; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.Spinner; import android.widget.TextView; import com.activeandroid.ActiveAndroid; import dk.specialiserng.model.Splits; public class MainActivity extends Activity { TextView textLat; TextView textLong; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageButton btn = (ImageButton)findViewById(R.id.imgBtn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { save(); } }); ActiveAndroid.initialize(this); populateSpinners(); initializeLocation(); } private class myLocationListener implements LocationListener{ @Override public void onLocationChanged(Location location) { if(location != null) { double pLong = location.getLongitude(); double pLat = location.getLatitude(); textLat.setText(Double.toString(pLat)); textLong.setText((Double.toString(pLong))); } } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } } public void populateSpinners() { Spinner passengerSpinner = (Spinner) findViewById(R.id.ddlPassengers); Spinner directionSpinner = (Spinner) findViewById(R.id.ddlDirection);
My layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Your Position in latitude and longitude" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/textLat" android:layout_below="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignRight="@+id/textView" android:layout_alignEnd="@+id/textView" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/textLong" android:layout_below="@+id/textLat" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignRight="@+id/textLat" android:layout_alignEnd="@+id/textLat" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Number of Splitters in your party" android:id="@+id/textView2" android:layout_below="@+id/textLong" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/ddlPassengers" android:layout_below="@+id/textView2" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:spinnerMode="dropdown" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="The direction you will be going" android:id="@+id/textView3" android:layout_below="@+id/ddlPassengers" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/ddlDirection" android:layout_below="@+id/textView3" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:spinnerMode="dropdown" /> <ImageButton android:layout_width="200dp" android:layout_height="90dp" android:scaleType="fitCenter" android:id="@+id/imgBtn" android:src="@drawable/gotitbtn" android:background="@android:color/transparent" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" /> </RelativeLayout>
Hope someone can help, I know I sent a bunch, but now I am desperately desperate. thanks in advance