udacity / ud845-pets Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
building project...
Error:(21, 0) Could not find method android() for arguments
[build_7x4tye6oked1jiwzuyg64bzrc$_run_closure3@74ce768d] on root project 'ud845-Pets'. Open File
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
android {
compileSdkVersion 17
buildToolsVersion '23.0.3'
}
dependencies {
}
@OverRide
public void onCreate(SQLiteDatabase db) {
String SQL_CREATE_PETS_TABLE = "CREATE TABLE " + PetEntry.TABLE_NAME + " (" +
PetEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
PetEntry.COLUMN_PET_NAME + " TEXT NOT NULL, " +
PetEntry.COLUMN_PET_BREED + " TEXT NOT NULL, " +
PetEntry.COLUMN_PET_GENDER + " INTEGER NOT NULL DEFAULT 0, " +
PetEntry.COLUMN_PET_WEIGHT + " INTEGER NOT NULL DEFAULT 0" + ");";
db.execSQL(SQL_CREATE_PETS_TABLE);
}
PetDbHelper mDbHelper = new PetDbHelper(this);
SQLiteDatabase db = mDbHelper.getReadableDatabase();
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.aaachat.activity, PID: 29361
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aaachat.activity/com.aaachat.activity.MainActivity}: java.lang.ClassCastException: com.google.android.material.floatingactionbutton.FloatingActionButton cannot be cast to android.widget.TextView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3516)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3655)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:151)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:111)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2218)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:238)
at android.app.ActivityThread.main(ActivityThread.java:7835)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:984)
Caused by: java.lang.ClassCastException: com.google.android.material.floatingactionbutton.FloatingActionButton cannot be cast to android.widget.TextView
at com.aaachat.activity.MainActivity.onCreate(MainActivity.java:52)
at android.app.Activity.performCreate(Activity.java:7967)
at android.app.Activity.performCreate(Activity.java:7956)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3487)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3655)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:151)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:111)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2218)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:238)
at android.app.ActivityThread.main(ActivityThread.java:7835)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:984)
I/Process: Sending signal. PID: 29361 SIG: 9
String name = values.getAsString(PetContract.PetEntry.COLUMN_PET_NAME);
if (name==null) {
throw new IllegalArgumentException("Pet requires a name");
}
String breed = values.getAsString(PetContract.PetEntry.COLUMN_PET_BREED);
if (breed==null) {
throw new IllegalArgumentException("Pet requires a breed");
}
here IllegalArgumentException will never be thrown as getString() in Editor activity never returns a null..it gives empty string if the edittext filed is empty
so we will have to check if name.isEmpty()||breed.isEmpty() if we want to throw an exception
I just imported the project from github but it shows enable offline mode
SO, you've downloaded the code and got a million error messages. Yup, this is not being maintained, luckily I got your back I think. So, rather than just importing their project, it works better to start a new empty project and paste in the relevant stuff. So once you've started a new empty project with the wizard, go ahead and copy the "main" folder from
"...AndroidStudioProjects\ud845-Pets-starting-point\app\src"
to your new folder (mine is "AndroidStudioProjects\pets\app\src").
Ok, good start but it still probably won't run. First, lets do the java files. In catalog activity, add this to the imports:
import com.google.android.material.floatingactionbutton.FloatingActionButton;
and remove the unused code (AS should highlight it).
In the editor activity add these to the imports:
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NavUtils;
And again remove the unused code.
Next we'll do the gradle file, open up build.gradle (:app) and add this implementation down at the bottom:
implementation "com.google.android.material:material:1.1.0"
Finally, in activity_catalogue.xml you will need need to change the
<android.support.design.widget.FloatingActionButton
to:
<com.google.android.material.floatingactionbutton.FloatingActionButton
Ok, now it should work. If not, it should be almost there. Post any additional steps below.
Error inserting name=Toto gender=1 weight=7 breed=Terrier
android.database.sqlite.SQLiteException: table pets has no column named weight (code 1): , while compiling: INSERT INTO pets(name,gender,weight,breed) VALUES (?,?,?,?)
please help me....I am struck with this..
the images are actually from drawable
Hi, I have a strange issue, if I declare the statement of creating the pets table as a class variable (outside of the onCreate method), the database is created but the table is not created. However, if I declare the create table statement inside the onCreate method the database is created with the table.
I couldn't find a reasonable explanation for that!!
Any idea??
i see the following output in terminal instead of expected table values that were given in EditorActivity. I even tried the same on code provided by you but the output is same.
sqlite> select * from pets;
1|android.support.v7.widget.AppCompatEditText{42a933b0 VFED..CL ........ 6,0-288,68 #7f0d006e app:id/edit_pet_name}|android.support.v7.widget.AppCo
mpatEditText{42a99ac8 VFED..CL ........ 6,68-288,136 #7f0d006f app:id/edit_pet_breed}|1|android.support.v7.widget.AppCompatEditText{42a1db80 VFED..
CL .F...... 6,0-288,68 #7f0d0073 app:id/edit_pet_weight}
insert statement shows normal expected values.(doesn't return -1).
"CREATE TABLE " +
"pets" + " (" +
PetEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
PetEntry.COLUMN_PET_NAME + " TEXT NOT NULL, " +
PetEntry.COLUMN_PET_BREED + " TEXT, " +
PetEntry.COLUMN_PET_GENDER + " INTEGER NOT NULL, " +
PetEntry.COLUMN_PET_WEIGHT + " INTEGER NOT NULL DEFAULT 0);";
table creation command
I downloaded the zip file, extracted it, imported the project in android studio, but I got this message :
Error:Cause: failed to find target with hash string 'android-24' in: C:\Users\WinDows7\AppData\Local\Android\Sdk
Possible cause: Build properties not found for package Android SDK Platform 24, rev 3
Install missing platform(s) and sync project
please help ,
Thanks
when i use this code line:getLoaderManager().initLoader(PET_LOADER, null, this);
the Android Studio shows me the message like:
"'Wrong 3rd argument type. Found: 'com.example.pets.CatalogActivity', required: 'android.app.LoaderManager.LoaderCallbacks<java.lang.Object>' less...
Inspection info:
initLoader() in LoaderManager cannot be applied to:"
Tried getSupportLoader() method suggested in one of the threads on StackOverFlow but it shows depreciated.
I'm using the SdkVersion 28 for my app
Can anyone help me please? thanks.
in lesson 2 in the database course, in the second tab "importing existing project", when we view the answer to the quiz, the view describes a different starting code.
the starting code shouldn't contain the package file named "data" and the contents of the java codes are different as well, this is probably an advanced version of the code. how can i get the right one?
The loader should be initialized inside the else statement
This should be used:
Intent intent = getIntent();
mCurrentPetUri = intent.getData();
if (mCurrentPetUri == null) {
setTitle(getString(R.string.editor_activity_title_new_pet));
} else {
setTitle(getString(R.string.editor_activity_title_edit_pet));
getLoaderManager().initLoader(1, null, this);
}
Instead of this:
Intent intent = getIntent();
mCurrentPetUri = intent.getData();
if (mCurrentPetUri == null) {
setTitle(getString(R.string.editor_activity_title_new_pet));
} else {
setTitle(getString(R.string.editor_activity_title_edit_pet));
}
getLoaderManager().initLoader(1, null, this);
sUrimatcher.match(uri); is returning -1.
It should return 101.
Can you help me with that?
PetProvider.java-:
package com.example.android.pets.data;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Selection;
import android.util.Log;
import android.widget.Toast;
public class PetsProvider extends ContentProvider {
private PetsDbHelper mDbHelper;
private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
private static final int PETS = 100;
private static final int PET_ID = 101;
static {
sUriMatcher.addURI(PetsContract.CONTENT_AUTHORITY, PetsContract.PATH_PETS, PETS);
}
@Override
public boolean onCreate() {
mDbHelper = new PetsDbHelper(getContext());
return false;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
SQLiteDatabase database = mDbHelper.getReadableDatabase();
Cursor cursor;
Log.v(String.valueOf(this),"uri="+uri);
int match = sUriMatcher.match(uri);
switch (match) {
case PETS:
cursor = database.query(PetsContract.PetsEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, null);
break;
case PET_ID:
selection = PetsContract.PetsEntry._ID + "=?";
selectionArgs = new String[]{String.valueOf(ContentUris.parseId(uri))};
cursor = database.query(PetsContract.PetsEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, null);
break;
default:
throw new IllegalArgumentException("unknown Uri " + uri);
}
// Set the notification URI on the Cursor
// So we know that content URI the Cursor was created for
// If the data at this URI changes ,then we know we need to update the Cursor.
cursor.setNotificationUri(getContext().getContentResolver(),uri);
return cursor;
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
int match = sUriMatcher.match(uri);
switch (match) {
case PETS:
return PetsContract.PetsEntry.CONTENT_LIST_TYPE;
case PET_ID:
return PetsContract.PetsEntry.CONTENT_ITEM_TYPE;
default:
throw new IllegalArgumentException("unknown URI " + uri);
}
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
int match = sUriMatcher.match(uri);
switch (match) {
case PETS:
return insertPets(uri, values);
default:
throw new IllegalArgumentException("insertion not possible " + uri);
}
}
private Uri insertPets(Uri uri, ContentValues values) {
String name = values.getAsString(PetsContract.PetsEntry.COLUMN_PET_NAME);
if (name == null) {
throw new IllegalArgumentException("Name of the pet can't be null");
}
int weight = values.getAsInteger(PetsContract.PetsEntry.COLUMN_PET_WEIGHT);
if (weight < 0) {
throw new IllegalArgumentException("Weight can't be negative");
}
SQLiteDatabase database = mDbHelper.getWritableDatabase();
long row = database.insert(PetsContract.PetsEntry.TABLE_NAME, null, values);
if (row == -1) {//Toast.makeText(getContext(),"Pet Saved",Toast.LENGTH_SHORT).show();
Log.e(String.valueOf(this), "Failed to insert " + uri);
}
//Notify all Listeners that the data has changed for the pet content URI
getContext().getContentResolver().notifyChange(uri,null);
return ContentUris.withAppendedId(uri, row);
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
SQLiteDatabase database = mDbHelper.getWritableDatabase();
final int match = sUriMatcher.match(uri);
switch (match) {
case PETS:
// Delete all rows that match the selection and selection args
return database.delete(PetsContract.PetsEntry.TABLE_NAME, selection, selectionArgs);
case PET_ID:
// Delete a single row given by the ID in the URI
selection = PetsContract.PetsEntry._ID + "=?";
selectionArgs = new String[]{String.valueOf(ContentUris.parseId(uri))};
int rowsDeleted = database.delete(PetsContract.PetsEntry.TABLE_NAME, selection, selectionArgs);
if(rowsDeleted!=0)
getContext().getContentResolver().notifyChange(uri,null);
return rowsDeleted;
default:
throw new IllegalArgumentException("Deletion is not supported for " + uri);
}
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
final int match = sUriMatcher.match(uri);
switch (match) {
case PETS:
return updatePet(uri, values, selection, selectionArgs);
case PET_ID:
selection = PetsContract.PetsEntry._ID + "=?";
selectionArgs = new String[]{String.valueOf(ContentUris.parseId(uri))};
return updatePet(uri, values, selection, selectionArgs);
default:
throw new IllegalArgumentException("Update is not possible for " + uri);
}
}
private int updatePet(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
SQLiteDatabase database = mDbHelper.getWritableDatabase();
int rowUpdated= database.update(PetsContract.PetsEntry.TABLE_NAME, values, selection, selectionArgs);
if(rowUpdated!=0)
getContext().getContentResolver().notifyChange(uri,null);
return rowUpdated;
}
}
PetContract.java-:
package com.example.android.pets.data;
import android.content.ContentResolver;
import android.net.Uri;
import android.provider.BaseColumns;
public final class PetsContract {
private PetsContract(){}
public static final String CONTENT_AUTHORITY = "com.example.android.pets";
public static final Uri BASE_CONTENT_URI = Uri.parse("content://"+CONTENT_AUTHORITY);
public static final String PATH_PETS = "pets";
public static final Uri CONTENT_URI = Uri.withAppendedPath(BASE_CONTENT_URI,PATH_PETS);
/inner class that define the table content/
public static class PetsEntry implements BaseColumns {
public static final String TABLE_NAME="pets"; //name of the database table.
public static final String _ID=BaseColumns._ID;
public static final String COLUMN_PET_NAME="name";
public static final String COLUMN_PET_BREED="breed";
public static final String COLUMN_PET_GENDER="gender";
public static final String COLUMN_PET_WEIGHT="weight";
/possible value of the gender of the pet/
public static final int GENDER_UNKNOWN=0;
public static final int GENDER_MALE=1;
public static final int GENDER_FEMALE=2;
public final static String CONTENT_LIST_TYPE= ContentResolver.CURSOR_DIR_BASE_TYPE+"/"+CONTENT_AUTHORITY+"/"+PATH_PETS;
public final static String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE+"/"+CONTENT_AUTHORITY+"/"+PATH_PETS;
}
}
In the EditorActivity code:
String weightString = mWeightEditText.getText().toString().trim();
int weight = Integer.parseInt(weightString);
gives an error if Pet without weight is added. The error is related to empty string on parseInt and not the intended error code.
I have use
LoaderManager.getInstance(this).initLoader(0, null, this); instead of using getLoaderManager()
when i am running app on device ,it is getting crashed with these errors.
06-15 12:07:00.617 17522-17522/com.example.android.pets E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.pets, PID: 17522
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.android.pets/com.example.android.pets.CatalogActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.android.pets.CatalogActivity" on path: DexPathList[[zip file "/data/app/com.example.android.pets-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.android.pets-1/lib/arm64, /vendor/lib64, /system/lib64]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2384)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535)
at android.app.ActivityThread.access$1100(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5582)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.android.pets.CatalogActivity" on path: DexPathList[[zip file "/data/app/com.example.android.pets-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.android.pets-1/lib/arm64, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2374)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535)
at android.app.ActivityThread.access$1100(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5582)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Suppressed: java.lang.NoClassDefFoundError: com.example.android.pets.CatalogActivity
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:226)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
at dalvik.system.DexPathList.findClass(DexPathList.java:338)
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
... 13 more
Suppressed: java.lang.ClassNotFoundException: com.example.android.pets.CatalogActivity
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 12 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
06-15 12:08:48.653 17522-17522/? I/Process: Sending signal. PID: 17522 SIG: 9
I have an error When I click the button to insert the data
this from main activity
`**b1.setOnClickListener(new View.OnClickListener() {
@OverRide
public void onClick(View v) {
EditText price = (EditText) findViewById(R.id.item_prize);
EditText quantity = (EditText) findViewById(R.id.quantity);
String hasprice= price.getText().toString();
String hasQuantity = quantity.getText().toString();
double finalprice= 0;
try {
finalprice = Double.parseDouble(hasprice);
} catch (Exception e) {
e.printStackTrace();
Toast toast = Toast.makeText(MainActivity.this,"You must put The number for your Item's Price",Toast.LENGTH_SHORT);
toast.show();
}
double finalQuantity = 0;
try {
finalQuantity = Integer.parseInt(hasQuantity);
} catch (Exception e) {
e.printStackTrace();
Toast toast = Toast.makeText(MainActivity.this,"You must put The number for your Item's
Quantity",Toast.LENGTH_LONG);
toast.show();
}
mHasTotal = addHasprice(finalprice, finalQuantity);
mFinalTotal = addFinalPrice(finalprice, finalQuantity);
quantityItems = addQuantity(finalQuantity);
if (mHasTotal == 0) {
b1.setEnabled(true);
b2.setEnabled(false);
b3.setEnabled(false);
} else {
b1.setEnabled(false);
b2.setEnabled(true);
b3.setEnabled(true);
}
Double finalTotal = Double.parseDouble(fixPrice.format(mHasTotal));
int finalItems = totalItems(quantityItems);
storePrice();
storeItems();
if (advancedBill.isChecked() == true) {
mDataBaseHelper.addBill(finalItems, finalTotal);
} else {
return;
}
displaySreen(String.valueOf(finalTotal));
displayItems(String.valueOf(finalItems));
price.setText(null);
quantity.setText(null);
}
});
}**`
And this codes from DatabaseHelper class
`**public static final String DATABASE_NAME = "bill.db";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_BILL = "billprice";
public static final String COL1_ITEMPRICE = "itemprice";
public static final String COL2_ITEMQUANTITY = "itemquantity";
public databaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String Query = "CREATE TABLE " + TABLE_BILL + "( "
+ COL2_ITEMQUANTITY + " INTEGER,"
+ COL1_ITEMPRICE + " INTEGER)";
db.execSQL(Query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_BILL);
onCreate(db);
}
public boolean addBill (int itemQuantity, double itemPrice) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COL1_ITEMPRICE, itemPrice);
values.put(COL2_ITEMQUANTITY, itemQuantity);
Long result = db.insert(DATABASE_NAME, null, values);
if(result == -1) {
return false;
} else {
return true;
}
}**`
And causes this error
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: bill.db (code 1): , while compiling: INSERT INTO bill.db(itemquantity,itemprice) VALUES (?,?))
when i use this code line:getLoaderManager().initLoader(PET_LOADER, null, this);
the Android Studio shows the message like:
"'Wrong 3rd argument type. Found: 'com.example.pets.CatalogActivity', required: 'android.app.LoaderManager.LoaderCallbacks<java.lang.Object>' less...
Inspection info:
initLoader() in LoaderManager cannot be applied to:"
i don't know how to deal with it.
Can anyone help me please?thanks.
AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.pets, PID: 6577
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.pets/com.example.android.pets.CatalogActivity}: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class android.support.design.widget.FloatingActionButton
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Caused by: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class android.support.design.widget.FloatingActionButton
Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class android.support.design.widget.FloatingActionButton
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.FloatingActionButton" on path: DexPathList[[zip file "/data/app/com.example.android.pets-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.android.pets-1/lib/arm, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:616)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:865)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.inflate(LayoutInflater.java:525)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:545)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.example.android.pets.CatalogActivity.onCreate(CatalogActivity.java:37)
at android.app.Activity.performCreate(Activity.java:6955)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Gradle sync failed: Could not determine the class-path for interface com.intellij.openapi.components.PersistentStateComponent
consistently this error
I propose to add code showing delete confirmation dialog before deleting all pets.
We have private int mGender = 0;
only.
Need to add something like mGender = (int) mGenderSpinner.getSelectedItemId();
A problem occurred configuring project ':app'.
Failed to notify project evaluation listener.
javax/xml/bind/annotation/XmlSchema
Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:109)
at org.gradle.configuration.project.LifecycleProjectEvaluator.onAfterEvaluateFailure(LifecycleProjectEvaluator.java:105)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:87)
at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:72)
at org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator.java:37)
at org.gradle.configuration.project.LifecycleProjectEvaluator$ConfigureProject.run(LifecycleProjectEvaluator.java:125)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:52)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:677)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:138)
at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:41)
at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:262)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:175)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:132)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:115)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:61)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:47)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:65)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener.
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:86)
at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy35.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:83)
at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:80)
at org.gradle.api.internal.project.DefaultProject.stepEvaluationListener(DefaultProject.java:1393)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:80)
... 89 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:162)
at com.android.repository.api.SchemaModule.(SchemaModule.java:80)
at com.android.sdklib.repositoryv2.AndroidSdkHandler.(AndroidSdkHandler.java:69)
at com.android.builder.sdk.DefaultSdkLoader.init(DefaultSdkLoader.java:115)
at com.android.builder.sdk.DefaultSdkLoader.getSdkInfo(DefaultSdkLoader.java:97)
at com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:125)
at com.android.build.gradle.BasePlugin.ensureTargetSetup(BasePlugin.java:680)
at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:617)
at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:572)
at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:569)
at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:55)
at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:47)
at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:568)
at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:565)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
... 99 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
... 119 more
The code, as is, runs fine on my emulator. However, when I click 'Insert Dummy Data' it fails to insert the data in the database. The following is the error I get on my logcat:
3-23 16:32:25.059 5771-5771/com.example.android.pets E/SQLiteDatabase: Error inserting name=Toto gender=1 weight=7 breed=Terrier
android.database.sqlite.SQLiteException: table pets has no column named gender (code 1): , while compiling: INSERT INTO pets(name,gender,weight,breed) VALUES (?,?,?,?)
Any help would be greatly appreciated
So after alot of hair pulling I found a problem related to the import classes used in this lesson. An error is thrown from getLoaderManager().initLoader(... , this). I'm not sure what the actual solution is going forward, but for the moment using the deprecated import classes shown below fixes the error.
So change these (android suggested) import classes:
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;
To these deprecated import classes:
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Loader;
I have the same imports that the ones showed here but in the lesson it says that i should have imported
import android.support.v7.app.LoaderManager; import android.support.v7.content.CursorLoader; import android.support.v7.content.Loader; import android.support.v7.widget.SimpleCursorAdapter;
but when i do, i get the "cannot resolve symbol " error.
I think i should compile something in the gradle files, but i'm not sure, and also I don't know how exactly.
Would anyone help me with this?
Thanks in advance.
Plz do help...
Error:Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)
Re-download dependencies and sync project (requires network)
even after changing the build.gradle
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.