Problem with step 3 of 'Push Notification Setup (Android) / App/Manifest Configuration,'

Mission: PUSH COMMANDER
Task: Register device for push notifications

I downloaded the ‘Hello World’ Demo code from Backendless into my Android Studio Project and it works fine on the ‘simulated Android Device.’

When I tried to copy the code from step 3 of ‘Push Notification Setup (Android) / App/Manifest Configuration,’ Android Studio converted it to Kotlin. The function ‘makeText’ causes the following errors. Any Ideas why would be appreciated.

None of the following functions can be called with the arguments supplied:
public open fun makeText(context: Context!, text: CharSequence!, duration: Int): Toast! defined in android.widget.Toast
public open fun makeText(context: Context!, resId: Int, duration: Int): Toast! defined in android.widget.Toast

This is the actual code.

package com.backendless.learnbackendless

import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.backendless.Backendless
import com.backendless.async.callback.AsyncCallback
import com.backendless.exceptions.BackendlessFault
import com.backendless.learnbackendless.ui.theme.LearnBackEndlessTheme
import com.backendless.push.DeviceRegistrationResult
import weborb.util.ThreadContext.context

class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
        LearnBackEndlessTheme {
            // A surface container using the 'background' color from the theme
            Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
                Greeting("Android")
            }
        }
    }
}

}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = “Hello $name!”,
modifier = modifier
)
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
LearnBackEndlessTheme {
Greeting(“Android”)
}

val channels: MutableList<String> = ArrayList()
channels.add("default")
Backendless.Messaging.registerDevice(
    channels,
    object : AsyncCallback<DeviceRegistrationResult?> {
        override fun handleResponse(response: DeviceRegistrationResult?) {
            Toast.makeText(
                context, "Device registered!",
                Toast.LENGTH_LONG
            ).show()
        }

        override fun handleFault(fault: BackendlessFault) {
            Toast.makeText(
                context, "Error registering " + fault.message,
                Toast.LENGTH_LONG
            ).show()
        }
    })

I’m not familiar with Kotlin. But maybe the error text would be helpful. Is it compilation error or runtime?

I modified the code to condense it at much as I can and changed the Toast messages to general inline messages just to see if the app makes it to the end. I don’t get any more errors, however the code still will not register the device. I need to find out why so I can continue with the Mission videos. The only think I’ve noticed now is that if I run the code several times I get an Android system message that the App has stopped running. I’ve been through all the setup instructions many times. The differences between the backendless instructions and the Firebase and Google instructions, especially in regards as to what goes in the gradles is substantial. The best example is this line.

implementation(“com.google.firebase:firebase-core”)

If I include this in the gradle the compile fails with many, many errors. My best understanding is that this is no longer used? This is what I have in the build.gradle.kts (app) concerning Firebase and Backendless.

// Import the Firebase BoM
implementation(platform("com.google.firebase:firebase-bom:32.3.1"))

// When using the BoM, you don't specify versions in Firebase library dependencies

// Add the dependency for the Firebase SDK for Google Analytics
implementation("com.google.firebase:firebase-analytics-ktx")

// TODO: Add the dependencies for any other Firebase products you want to use
// See https://firebase.google.com/docs/android/setup#available-libraries
// For example, add the dependencies for Firebase Authentication and Cloud Firestore

// implementation(“com.google.firebase:firebase-core”)
implementation(“com.google.firebase:firebase-messaging”)
implementation(“com.google.firebase:firebase-auth-ktx”)
implementation(“com.google.firebase:firebase-firestore-ktx”)
implementation(“com.backendless:backendless:6.3.6”)
// required for real-time database and real-time messaging
implementation(“io.socket:socket.io-client:1.0.0”) {
// excluding org.json which is provided by Android
exclude(group = “org.json”, module = “json”)


This is the code I’m currently using for the Android app.


package com.backendless.learnbackendless

import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.backendless.Backendless
import com.backendless.async.callback.AsyncCallback
import com.backendless.exceptions.BackendlessFault
import com.backendless.learnbackendless.ui.theme.LearnBackEndlessTheme
import com.backendless.push.DeviceRegistrationResult
import weborb.util.ThreadContext.context

class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    Toast.makeText(this@MainActivity,
        "Before - Backendless.initApp!",
        Toast.LENGTH_LONG)
        .show()

    Backendless.initApp(
        this,
        "A842DF0C-E73A-4DE3-FFB1-2F1315340400",
        "241CA1D7-7A34-4852-8E81-FB8179147F38"
    )

    Toast.makeText(this@MainActivity,
        "After - Backendless.initApp!",
        Toast.LENGTH_LONG)
        .show()

    val channels: MutableList<String> = ArrayList()
    channels.add("default")

    Toast.makeText(this@MainActivity,
        "Before Register!",
        Toast.LENGTH_LONG)
        .show()

    Backendless.Messaging.registerDevice(channels)

    Toast.makeText(this@MainActivity,
        "After Register!",
        Toast.LENGTH_LONG)
        .show()

}

}

I also noticed that you use quite old version (6.3.6) of backendless sdk for Android. It is deprecated and isn’t supported anymore.
Please, look through the GitHub - Backendless/java-sdk, the latest stable version will be listed there (7.0.7 at this point).

Changing backendless sdk to version 7.0.7 Causes a long list of compile errors. Most are some version of this.

Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.backendless:backendless:7.0.7.

hello @Tony_V_Wynn

artifactId is changed so the name should be com.backendless:android-client-sdk:7.0.7

Changed artifactId to com.backendless:android-client-sdk:7.0.7
Now getting this error when syncing the gradle files.

Unresolved references :Backendless

When running the App I get 20+ errors. Mostly of the following variety.

Could not resolve all files for configuration ‘:app:debugRuntimeClasspath’
Could not find io.socket:socket.io-client:4.7.2

I checked the build.gradle.kts and I have the line below in the gradle.

implementation("io.socket:socket.io-client:4.7.2") {
    // excluding org.json which is provided by Android
    exclude(group = "org.json", module = "json")

@Tony_V_Wynn ,

Could you list full text for several errors?

In new SDK version there could be some minor changes which require code adaptation on your side, but Gradle artifact itself is selfsufficient and should bring all required dependencies along during Gradle build.

Regards, Andriy

This is the Gradle. The app code will be below.

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.gms.google-services")
}

android {
    namespace = "com.backendless.learnbackendless"
    compileSdk = 33

    defaultConfig {
        applicationId = "com.backendless.learnbackendless"
        minSdk = 21
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.4.3"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

dependencies {

    implementation("androidx.core:core-ktx:1.9.0")
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1")
    implementation("androidx.activity:activity-compose:1.7.0")
    implementation(platform("androidx.compose:compose-bom:2023.03.00"))
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.ui:ui-graphics")
    implementation("androidx.compose.ui:ui-tooling-preview")
    implementation("androidx.compose.material3:material3")
    // Import the Firebase BoM
    implementation(platform("com.google.firebase:firebase-bom:32.3.1"))

    // When using the BoM, you don't specify versions in Firebase library dependencies

    // Add the dependency for the Firebase SDK for Google Analytics
    implementation("com.google.firebase:firebase-analytics-ktx")

    // TODO: Add the dependencies for any other Firebase products you want to use
    // See https://firebase.google.com/docs/android/setup#available-libraries
    // For example, add the dependencies for Firebase Authentication and Cloud Firestore
//    implementation("com.google.firebase:firebase-core")
    implementation("com.google.firebase:firebase-messaging")
    implementation("com.google.firebase:firebase-auth-ktx")
    implementation("com.google.firebase:firebase-firestore-ktx")
    implementation("com.backendless:android-client-sdk:7.0.7")
    // required for real-time database and real-time messaging
    implementation("io.socket:socket.io-client:2.1.0") {
        // excluding org.json which is provided by Android
        exclude(group = "org.json", module = "json")
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.5")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
    androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-tooling")
    debugImplementation("androidx.compose.ui:ui-test-manifest")
    }
}

App Code:

package com.backendless.learnbackendless

import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.backendless.Backendless
import com.backendless.async.callback.AsyncCallback
import com.backendless.exceptions.BackendlessFault
import com.backendless.learnbackendless.ui.theme.LearnBackEndlessTheme
import com.backendless.push.DeviceRegistrationResult
import weborb.util.ThreadContext.context

class MainActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        Toast.makeText(this@MainActivity,
            "Before - Backendless.initApp!",
            Toast.LENGTH_LONG)
            .show()

        Backendless.initApp(
            this,
            "A842DF0C-E73A-4DE3-FFB1-2F1315340400",
            "241CA1D7-7A34-4852-8E81-FB8179147F38"
        )

        Toast.makeText(this@MainActivity,
            "After - Backendless.initApp!",
            Toast.LENGTH_LONG)
            .show()

        val channels: MutableList<String> = ArrayList()
        channels.add("default")

        Toast.makeText(this@MainActivity,
            "Before Register!",
            Toast.LENGTH_LONG)
            .show()

        Backendless.Messaging.registerDevice(channels)

        Toast.makeText(this@MainActivity,
            "After Register!", 
            Toast.LENGTH_LONG)
            .show()

    }
}

This is the error list.

* :app:checkDebugAarMetadata
* :app:mapDebugSourceSetPaths
* :app:mergeDebugResources
* :app:processDebugMainManifest
* :app:mergeDebugAssets
* :app:checkDebugDuplicateClasses
* :app:mergeDebugNativeLibs
* :app:writeDebugSigningConfigVersions
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=android-aar-metadata, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=android-res, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=android-res, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=android-manifest, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=android-assets, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=enumerated-runtime-classes, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).
* org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

* org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7) to match attributes {artifactType=android-jni, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

* org.gradle.internal.resolve.ArtifactNotFoundException: Could not find android-client-sdk-7.0.7.aar (com.backendless:android-client-sdk:7.0.7).

@Tony_V_Wynn ,

Could you please try to comment out all code which uses Backendless classes, comment dependency on Backendless SDK and check if project builds after these actions?

If I comment out the code to Backendless and Dackendless SDK dependenies I get this error on run

Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 27 declared in library [com.backendless:android-client-sdk:7.0.7] C:\Users\el_ma.gradle\caches\transforms-3\16ea52eb57279d4f750b6cda87533e25\transformed\android-client-sdk-7.0.7\AndroidManifest.xml as the library might be using APIs not available in 21
Suggestion: use a compatible library with a minSdk of at most 21,
or increase this project’s minSdk version to at least 27,
or use tools:overrideLibrary=“com.backendless” to force usage (may lead to runtime failures)

If I try to add to the Manifest I get these errors on run.

at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:97)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:93)
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:57)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:54)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:54)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:166)
at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
at org.gradle.internal.Either$Right.fold(Either.java:175)
at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:76)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:42)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:31)
at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:338)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:325)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:318)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:304)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)

Are you sure that you commented out everything properly and cleared Gradle caches?
There should be no errors which related to Backendless right now

I tried commenting out everything I added during this mission and resetting the cache. I get a whole new set of errors. Everything I try just seems to make things worse. I’m at the point of uninstalling Android Studio and starting over from scratch.

Hello @Tony_V_Wynn,

have you succeeded with this issue?

I gave up. Everything I have tried, either suggestions from backendless team, or my own research online has made things worse at every turn. Your documentation/videos contradict Firebase/Google instruction in several locations. I tried their way and your way, and nothing works. I’m convinced it’s an unnecessary maze that Firebase/Google has created, but I’m also convinced that your videos and documentation are out of date enough to cause many problems. I really do like your UI, Logic, and Database approach, however the integration with push notification setup is a nightmare. It makes me wonder if publishing on Play Store or other non-backendless operations are going to be just as problematic.

I’m sorry you’re giving up. We want to help you, but we cannot do this based on information that “everything has gotten worse.” If you receive new errors in the logs after our recommendation, sharing them with us would be the most productive way to continue searching for a solution.

You said, that after commenting out the code related to backendless lib, you still receive the error.

Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version
27 declared in library [com.backendless:android-client-sdk:7.0.7]

Which means

  • you didn’t comment everything (Otherwise, where does the error associated with backendless come from?!);
  • the project had an error with Android API version compatibility – the compiler tells you about this explicitly.

Please, try firstly to compile your project without backendless library, and the step-by-step we will be able to help you.