Вчера при работе в андроид студио делал окно регистрации и ошибок не было. Сегодня опять запуская проект, добавляю библиотеку в build.gradle и сразу же удаляю её. Появилась ошибка, которая указывает на дублирование классов, хотя ничего подобного у меня нет, прошу помощи.
Я по сути только начал изучать java и андроид разработку и вчера всё что делал это фиксил ошибки с библиотеками, почему то их очень много было. Сейчас вот эта ошибка забрала у меня несколько часов но я так и не понял как это решить, gpt тоже особо дельных советов не дал:(
Приложу весь код на всякий случай
Ошибка:
1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:mapDebugSourceSetPaths'.
> Querying the mapped value of map(flatmap(provider(task 'processDebugGoogleServices', class com.google.gms.googleservices.GoogleServicesTask))) before task ':app:processDebugGoogleServices' has completed is not supported
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
==============================================================================
2: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.IResultReceiver found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.ResultReceiver found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
Go to
gradle :app
plugins {
id("com.android.application")
id("com.google.gms.google-services")
}
android {
namespace = "com.example.globalapp"
compileSdk = 34
defaultConfig {
applicationId = "com.example.globalapp"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
repositories {
google() // Добавляем репозиторий Google Maven
mavenCentral()
}
// подключение библиотек
dependencies {
implementation(platform("com.google.firebase:firebase-bom:32.7.2"))
implementation("com.google.firebase:firebase-analytics")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("com.google.firebase:firebase-auth:22.3.1")
implementation("com.google.firebase:firebase-database:20.3.0")
implementation("com.rengwuxian.materialedittext:library:2.1.4")
implementation("uk.co.chrisjenx:calligraphy:2.3.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
}
settings gradle
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
rootProject.name = "GlobalApp"
include(":app")
сам код приложения
package com.example.globalapp;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class MainActivity extends AppCompatActivity {
Button btnSignIn, btnRegister;
FirebaseAuth auth; //авторизация
FirebaseDatabase db; //подключение к бд
DatabaseReference users; // для работы с таблицей внутри бд
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSignIn = findViewById(R.id.btnSignIn);
btnRegister = findViewById(R.id.btnRegister);
auth = FirebaseAuth.getInstance(); //запускаем авторизацию в бд
db = FirebaseDatabase.getInstance(); //подключаемся к бд
users = db.getReference("Users");
//обработчик для Зарегаться
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// при нажатии на зарегаться будет выполняться код который тут прописан
showRegisterWindow();
}
});
}
private void showRegisterWindow() {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Зарегистрироваться");
dialog.setMessage("Введите данные для регистрации");
}
}