- Я использую последнюю реализацию одного сигнала, зависимость 'com.onesignal:OneSignal:[5.0.0, 5.99.99]'
- Gradle и AGP версий 8.7 и 8.5.0
- Использование JDK 17.0
Ранее я использовал реализацию("com.onesignal:OneSignal :[4.6.4, 5.0.0)"), в то время все работало нормально, приложение было стабильным, и теперь я получал уведомления правильно после того, как обновил SDK до реализации «com.onesignal:OneSignal:[5.0.0, 5.99» .99]' я получаю эти ошибки
Задача :app:clean
Задача: app:preBuild UP-TO-DATE
Task :app:preDebugBuild UP-TO-DATE
Task :app:generateDebugResValues
Task :app:checkDebugAarMetadata
Task :app:mapDebugSourceSetPathsЗадача :app:generateDebugResources
Задача :app:packageDebugResources
Задача :app:createDebugCompatibleScreenManifests
Задача :app:parseDebugLocalResources
Задача :app:extractDeepLinksDebug
Задача :app:processDebugMainManifest
package="com.myapp.notificationapp" найдена в исходном файле AndroidManifest.xml: H:\Notification App УВЕДОМЛЕНИЕ — KOTLIN\V2\V2\BCNOTIFICATION0314PM27072024\notificationApp\app\src\main\AndroidManifest.xml.
Установка пространства имен через атрибут пакета в исходном файле AndroidManifest.xml больше не поддерживается, и это значение игнорируется.
Рекомендация: удалите package="com.myapp.notificationapp" из исходного файла AndroidManifest.xml: H:\Notification App NOTIFICATION - KOTLIN\V2\V2\BCNOTIFICATION0314PM27072024\notificationApp\app\src\main\AndroidManifest.xml.
Задача :app:processDebugManifest
Задача :app:javaPreCompileDebug
Задача :app:processDebugManifestForPackageЗадача :app:preDebugAndroidTestBuild ПРОПУЩЕНА
Задача :app:checkDebugAndroidTestAarMetadata
Задача :app:generateDebugAndroidTestResValues
Задача :app:mapDebugAndroidTestSourceSetPaths
Задача :app:generateDebugAndroidTestResources
Задача :app:mergeDebugAndroidTestResources
Task :app:mergeDebugResources
Task :app:processDebugAndroidTestManifest
Task :app:javaPreCompileDebugAndroidTest
Task :app:mergeDebugAndroidTestShaders
Task :app:compileDebugAndroidTestShaders NO -SOURCE
Task :app:generateDebugAndroidTestAssets АКТУАЛЬНО
Task :app:mergeDebugAndroidTestAssets
Task :app:compressDebugAndroidTestAssets
Task :app:checkDebugAndroidTestDuplateClasses
Task :app :desugarDebugAndroidTestFileDependities
Задача :app:mergeDebugAndroidTestJniLibFolders
Задача :app:mergeLibDexDebugAndroidTest
Задача :app:mergeDebugJniLibFolders
Задача :app:mergeDebugNativeLibs NO-SOURCE
Задача :app:mergeDe ошибкаAndroidTestNativeLibs NO-SOURCE
Task :app:stripDebugAndroidTestDebugSymbols NO-SOURCE
Task :app:validateSigningDebugAndroidTest
Task :app:processDebugAndroidTestResources
Task :app:writeDebugAndroidTestSigningConfigVersions
Task :app: mergeDebugNativeDebugMetadata NO-SOURCE
Задача :app:mergeDebugShaders
Задача :app:compileDebugShaders NO-SOURCE
Задача :app:generateDebugAssets UP-TO-DATE
Задача :app:mergeDebugAssets
Задача :app:compressDebugAssets
Задача :app:desugarDebugFileDependency
Задача :app:mergeDebugStartupProfile ОБНОВЛЕННАЯ
Задача :app:stripDebugDebugSymbols NO-SOURCE
Задача :app: validateSigningDebug
Задача :app:writeDebugAppMetadata
Задача :app:checkDebugDuplateClasses
Задача :app:writeDebugSigningConfigVersions
Задача :app:preDebugUnitTestBuild UP-TO-DATE
Задача :app: javaPreCompileDebugUnitTest
Задача :app:mergeLibDexDebug
Задача :app:mergeExtDexDebugAndroidTest
Задача :app:processDebugResources
Задача :app:mergeExtDexDebug
Задача :app:compileDebugKotlin ОШИБКА
e: file:///H:/Notification%20app%20NOTIFICATION%20-%20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/ NotificationApp/app/src/main/java/com/myapp/notificationapp/MainActivity.kt:27:19 Неразрешенная ссылка: setLogLevel
e: file:///H:/Notification%20app%20NOTIFICATION%20-% 20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/app/src/main/java/com/myapp/notificationapp/MainActivity.kt:27:41 Неразрешенная ссылка: LOG_LEVEL
e: file:///H:/Notification %20app%20NOTIFICATION%20-%20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/app/src/main/java/com/myapp/notificationapp/MainActivity.kt:27:70 Неразрешенная ссылка: LOG_LEVEL
e: file :///H:/Notification%20app%20NOTIFICATION%20-%20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/app/src/main/java/com/myapp/notificationapp/MainActivity.kt:31:19 Неразрешенная ссылка: setAppId
e: file:///H:/Notification%20app%20NOTIFICATION%20-%20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/app/src/main/java/com/myapp/notificationapp/MyNotificationOpenedHandler. kt:5:22 Неразрешенная ссылка: OSNotificationOpenedResult
e: file:///H:/Notification%20app%20NOTIFICATION%20-%20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/app/src/main/java/ com/myapp/notificationapp/MyNotificationOpenedHandler.kt:8:69 Неразрешенная ссылка: OSNotificationOpenedHandler
e: file:///H:/Notification%20app%20NOTIFICATION%20-%20KOTLIN/V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/ app/src/main/java/com/myapp/notificationapp/MyNotificationOpenedHandler.kt:9:5 'notificationOpened' ничего не переопределяет
e: file:///H:/Notification%20app%20NOTIFICATION%20-%20KOTLIN /V2/V2/BCNOTIFICATION0314PM27072024/notificationApp/app/src/main/java/com/myapp/notificationapp/MyNotificationOpenedHandler.kt:9:45 Неразрешенная ссылка: OSNotificationOpenedResult
ОШИБКА: сборка завершилась с ошибкой.
- Что пошло не так:
Не удалось выполнить задачу ':app:compileDebugKotlin'.
Ошибка компиляции. Дополнительную информацию смотрите в журнале.
- Попробуйте:
Запустите с параметром --stacktrace, чтобы получить трассировку стека.
Запустите с параметром --info или --debug, чтобы получить больше результатов журнала.
Запустите с --scan чтобы получить полную информацию.
Дополнительную помощь можно получить на https://help.gradle.org.
В этой сборке использовались устаревшие функции Gradle. , что делает его несовместимым с Gradle 9.0.
Вы можете использовать --warning-mode all, чтобы отобразить отдельные предупреждения об устаревании и определить, исходят ли они из ваших собственных скриптов или плагинов.
Подробнее об этом см. https://docs.gradle.org/8.7/userguide/c ... e_warnings в документации Gradle.
СТРОИТЬ НЕ УДАЛОСЬ за 16 секунд
47 практических задач: 46 выполнено, 1 актуально
`
Ниже мой код
MainActivity
Код: Выделить всё
package com.myapp.notificationapp
import android.Manifest
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.PowerManager
import android.provider.Settings
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.onesignal.OneSignal
class MainActivity : AppCompatActivity() {
private val ONESIGNAL_APP_ID = "My_app_id"
private val PERMISSION_REQUEST_CODE = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Enable verbose OneSignal logging to debug issues
OneSignal.setLogLevel(OneSignal.LOG_LEVEL.VERBOSE, OneSignal.LOG_LEVEL.NONE)
// OneSignal Initialization
OneSignal.initWithContext(this)
OneSignal.setAppId(ONESIGNAL_APP_ID)
// Check and request permissions
checkAndRequestPermissions()
// Check battery optimization
checkBatteryOptimization()
// Start foreground service
startForegroundService()
}
private fun checkAndRequestPermissions() {
val permissionsNeeded = mutableListOf()
// Check INTERNET permission
if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
permissionsNeeded.add(Manifest.permission.INTERNET)
}
// Check notification permission (for Android 13 and above)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
permissionsNeeded.add(Manifest.permission.POST_NOTIFICATIONS)
}
}
// Check SYSTEM_ALERT_WINDOW permission
if (!Settings.canDrawOverlays(this)) {
permissionsNeeded.add(Manifest.permission.SYSTEM_ALERT_WINDOW)
}
if (permissionsNeeded.isNotEmpty()) {
ActivityCompat.requestPermissions(this, permissionsNeeded.toTypedArray(), PERMISSION_REQUEST_CODE)
}
}
private fun checkBatteryOptimization() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
val packageName = packageName
if (!powerManager.isIgnoringBatteryOptimizations(packageName)) {
val intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
intent.data = Uri.parse("package:$packageName")
startActivity(intent)
}
}
}
private fun startForegroundService() {
val serviceIntent = Intent(this, ForegroundService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
ContextCompat.startForegroundService(this, serviceIntent)
} else {
startService(serviceIntent)
}
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == PERMISSION_REQUEST_CODE) {
for (i in permissions.indices) {
if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
// Handle permission not granted
}
}
}
}
}
Код: Выделить всё
package com.myapp.notificationapp
import android.content.Context
import android.content.Intent
import com.onesignal.OSNotificationOpenedResult
import com.onesignal.OneSignal
class MyNotificationOpenedHandler(val context: Context) : OneSignal.OSNotificationOpenedHandler {
override fun notificationOpened(result: OSNotificationOpenedResult?) {
// Handle the action when notification is opened
val intent = Intent(context, MainActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT or Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
}
}
Код: Выделить всё
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
}
android {
namespace = "com.myapp.notificationapp"
compileSdk = 34
defaultConfig {
applicationId = "com.myapp.notificationapp"
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled = 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"
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
implementation 'com.onesignal:OneSignal:[5.0.0, 5.99.99]'
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}
Код: Выделить всё
pluginManagement {
repositories {
google {
content {
includeGroupByRegex("com\\.android.*")
includeGroupByRegex("com\\.google.*")
includeGroupByRegex("androidx.*")
}
}
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "Notification App Notification App"
include ':app'
Код: Выделить всё
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.jetbrains.kotlin.android) apply false
}
Код: Выделить всё
[versions]
agp = "8.5.0"
kotlin = "1.9.0"
coreKtx = "1.13.1"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
material = "1.12.0"
activity = "1.9.1"
constraintlayout = "2.1.4"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
Подробнее здесь: https://stackoverflow.com/questions/788 ... -encounter