Служба Android: невозможно запустить намерение службы {act = edu.darts.neuromobi.TestService}: не найдено - PullRequest
1 голос
/ 06 декабря 2011

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

Мне нужны java-классы, Test.java и TestService.java, и когда я пытаюсь запустить Сервис или связать Сервис, я всегда получаю сообщение об ошибке, перечисленное выше. Я попробовал рекомендуемые стандартные решения в здесь , но это не сработало. Я попытаюсь переименовать файлы Java и начать новый проект, чтобы увидеть, работает ли он, как указано в здесь .

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

Будем весьма благодарны за любые предложения по этому вопросу.

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

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

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

"Невозможно запустить службу Намерение {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>

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Вам необходимо предоставить пространство имен в атрибуте имени в некоторой форме так:

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

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

<service android:name=".TestService"></service>
0 голосов
/ 06 декабря 2011

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

<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);

    }
...