Служба Android: невозможно запустить намерение службы {act = edu.darts.neuromobi.TestService}: не найдено

1

У меня та же проблема, что и у других, но я не могу заставить свой код работать.

У меня есть классы java, Test.java и TestService.java, и когда я пытаюсь запустить Service или bind Service, я всегда получаю ошибку, указанную выше. Я попробовал рекомендованные стандартные решения здесь, но это не сработало. Я попытаюсь переименовать java файлы и запустить новый проект, чтобы увидеть, работает ли это так, как указано здесь.

Затем я увидел эту ссылку Vogella, что у меня должен быть зарегистрированный пользователь Google на устройстве. Это то, что моя проблема, или я путаю ошибки (может быть, "intent.REGISTER" относится к чему-то еще).

Любые предложения по этому поводу будут высоко оценены.

4,3. Зарегистрируйте свое приложение

Запустите приложение, поддержите зарегистрированного пользователя и нажмите кнопку. Проверьте регистрационный номер LogCat.

Если вы видите следующее сообщение:

"Невозможно запустить службу Intent {act = com.google.android.c2dm.intent.REGISTER...}: не найдено"

Я пробовал это, как на моем телефоне, так и на симуляторе.

Разрешения:

<application android:icon="@drawable/gyroscopic" android:label="@string/app_name">
...
<activity android:name="Test"></activity>

<service android:name="TestService"></service>  
....
</application>
  • 0
    Спасибо за решение моего вопроса @Vimal
  • 0
    WC, мы здесь, чтобы сотрудничать и помогать друг другу :)
Теги:
service
android-intent

2 ответа

0
Лучший ответ

Попробуйте использовать весь код пакета для вашего сервиса, что я всегда делаю, и он всегда работал до сих пор.

<service
    android:enabled="true"
    android:name="com.mobowski.appfrag.service.MusicService" >
</service>

Изменить для запуска/привязки к службе.

Обычно я это делаю:

Запуск службы

// This is in the onCreate of my main screen, but this would work in a button
startService(
            new Intent(this, Service.class));

В самом сервисе

Вы будете использовать это при привязке к сервису

// Field of service
private final IBinder mBinder = new MyBinder(); 

// We return the binder class upon a call of bindService
    @Override
    public IBinder onBind(Intent arg0) {
        return mBinder;
    }

    public class MyBinder extends Binder {
        public MusicService getService() {
            return MusicService.this;
        }
    }

Привязка к сервису

Для этого я использую несколько фрагментов кода, которые я взял из примера один раз, но они до сих пор не подвели меня.

private ServiceConnection mConnection = new ServiceConnection() {

        public void onServiceConnected(ComponentName className, IBinder binder) {
            s = ((MusicService.MyBinder) binder).getService();
            Toast.makeText(this, "Connected", Toast.LENGTH_SHORT)
                    .show();
            // Little Toast to make sure we connected

        }

        public void onServiceDisconnected(ComponentName className) {
            s = null;
        }
    };

    void doBindService() {
        bindService(
            new Intent(this,
                    MusicService.class), mConnection,
            Context.BIND_AUTO_CREATE);

    }
  • 0
    Как я уже говорил выше, я прочитал много связанных постов (но я не говорю, что прочитал их все - их много), которые предлагают ту же проблему, и она не работает (вот что я имею в мой манифест): ... <service android:enabled="true" android:name=".AccelerometerService"></service> <activity android:name="TremCam"></activity> </application>
  • 0
    Вопрос. Как вы пытаетесь запустить / привязать к сервису?
Показать ещё 3 комментария
0

Необходимо указать пространство имен в атрибуте name в некоторой форме, чтобы:

<service android:name="edu.darts.neuromobi.TestService"></service>

или возможно:

<service android:name=".TestService"></service>
  • 0
    Спасибо @Vimal за исправление моего поста, я сделаю это в следующий раз.
  • 0
    Я видел ваше предложение во многих других постах, но я получил тот же результат! Я даже попытался просто взять службу и действие (которое использует кнопки для запуска или привязки к службе) и поместить их в новый проект с разными именами файлов с одинаковым результатом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню