Я работаю с Android и сталкиваюсь со следующей ошибкой при создании службы и ее запуске из основного потока операций. Я проделал go через все потоки, связанные с этой ошибкой, но эту ошибку они видят в основном для задачи Activity Ниже приведены сведения об ошибке и коде
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.serviceexample/com.example.serviceexample.MyServiceBg}; have you declared this activity in your AndroidManifest.xml?
Я проверил свой AndriodManifest. xml и я вижу службу, объявленную
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.serviceexample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="ServiceExample"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service
android:name=".MyIntentService"
android:exported="false"></service>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".MyBgService"/>
</application>
</manifest>
MainActivity. java:
package com.example.serviceexample;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.displayBtn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent displayTost = new Intent(MainActivity.this, MyBgService.class);
startActivity(displayTost);
}
});
}
Мой фоновый сервис:
package com.example.serviceexample;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
import androidx.annotation.Nullable;
public class MyBgService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int i;
for (i = 1; i< 10; i++) {
Toast.makeText(getApplicationContext(), "Number = "+i, Toast.LENGTH_LONG).show();
}
return Service.START_NOT_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Я попытался связать путь в AndroidManifest. xml. Но все равно получаю такую же ошибку. Не уверен, в чем проблема.
Вот версия Gradle: 3.5.3
, и я использую версию SDK 29
Любая помощь будет высоко оценена.