Problem in android application, it stops on emulator due to background services

35 Views Asked by At

I have changed the SDK from 29 to 34 of my application. I am using some Firebase services. Here are these:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission
        android:name="android.permission.PACKAGE_USAGE_STATS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission
        android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" /> <!-- DONE -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission
        android:name="android.permission.LOCATION_HARDWARE"
        tools:ignore="ProtectedPermissions" /> <!-- DONE -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- DONE -->
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />

    <application
        android:name=".NotificationChannelCreator"
        android:icon="@drawable/child_care_square"
        android:label="@string/app_name"
        android:roundIcon="@drawable/child_care"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
        <activity android:name=".activities.AboutActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.SettingsActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.AccountVerificationActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.ModeSelectionActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.PermissionsActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.BlockedAppActivity"
            tools:ignore="Instantiatable" />
        <activity
            android:name=".activities.ChildDetailsActivity"
            android:parentActivityName=".activities.ParentSignedInActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.ChildSignedInActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.ParentSignedInActivity"
            tools:ignore="Instantiatable" />
        <activity
            android:name=".activities.SignUpActivity"
            android:parentActivityName=".activities.LoginActivity"
            tools:ignore="Instantiatable" />
        <activity android:name=".activities.LoginActivity"
            tools:ignore="Instantiatable"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <service
            android:name=".services.UploadAppsService"
            android:permission="android.permission.BIND_JOB_SERVICE" />
        <service
            android:name=".services.MainForegroundService"
            android:foregroundServiceType="location" />
        <service android:name=".services.GeoFencingForegroundService" />

        <receiver
            android:name=".broadcasts.PhoneStateReceiver"
            android:enabled="true"
            android:exported="true"
            tools:ignore="Instantiatable">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>

        <receiver
            android:name=".broadcasts.SmsReceiver"
            android:enabled="true"
            android:exported="true"
            tools:ignore="Instantiatable"
            android:permission="android.permission.BROADCAST_SMS">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>

        <receiver
            android:name=".broadcasts.AppInstalledReceiver"
            android:enabled="true"
            android:exported="true"
            tools:ignore="Instantiatable">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>

        <receiver
            android:name=".broadcasts.AppRemovedReceiver"
            android:enabled="true"
            android:exported="true"
            tools:ignore="Instantiatable">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>

        <receiver
            android:name=".broadcasts.ScreenTimeReceiver"
            android:enabled="true"
            android:exported="true"
            tools:ignore="Instantiatable">
            <intent-filter>
                <action android:name="android.intent.action.SCREEN_ON" />
                <action android:name="android.intent.action.SCREEN_OFF" />
            </intent-filter>
        </receiver>


        <receiver android:name=".broadcasts.BootCompleteReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
        <receiver
            android:name=".broadcasts.AdminReceiver"
            android:description="@string/device_admin_description"
            android:label="@string/device_admin"
            android:permission="android.permission.BIND_DEVICE_ADMIN"
            android:exported="true">
            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/device_admin_policies" />

            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

Here is the log results(Errors I am getting):

  E  FATAL EXCEPTION: main
                                                                                                    Process: com.arismlen.guardian_app, PID: 5073
                                                                                                    com.google.firebase.database.DatabaseException: Class com.arismlen.guardian_app.models.Child does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.deserialize(CustomClassMapper.java:570)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.deserialize(CustomClassMapper.java:563)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:433)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)
                                                                                                        at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:202)
                                                                                                        at com.arismlen.guardian_app.activities.ParentSignedInActivity$1.onDataChange(ParentSignedInActivity.java:118)
                                                                                                        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
                                                                                                        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
                                                                                                        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                        at android.os.Looper.loop(Looper.java:294)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8177)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
  E  FATAL EXCEPTION: main
                                                                                                    Process: com.arismlen.guardian_app, PID: 5298
                                                                                                    com.google.firebase.database.DatabaseException: Class com.arismlen.guardian_app.models.Child does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.deserialize(CustomClassMapper.java:570)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.deserialize(CustomClassMapper.java:563)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:433)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
                                                                                                        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)
                                                                                                        at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:202)
                                                                                                        at com.arismlen.guardian_app.activities.ParentSignedInActivity$1.onDataChange(ParentSignedInActivity.java:118)
                                                                                                        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
                                                                                                        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
                                                                                                        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                        at android.os.Looper.loop(Looper.java:294)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8177)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

Whenever I tried to launch the app, it did not work. It stopped and moved back to the login screen. Can anyone solve this issue?

I think it is a Firebase problem. I am new to this. Can anyone help me?

0

There are 0 best solutions below