无法启动服务Intent { flg=0x4 cmp=com.UserLogin/.BgService (has extras) }: 未找到

3
我正在尝试使用Alarmmanager和pendingIntent启动一个服务。我卡在了“无法启动服务意图{flg=0x4 cmp=com.UserLogin/.BgService(有额外内容)}:未找到”错误上。我已经在Google和Stackoverflow上搜索了这个错误并查看了一些关于此错误的问题,但这些解决方案对我没有用。请查看StackoverFlow链接说明
服务类:
public class BgService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
    }
    @Override
    public void onStart(Intent intent, int startId) {
        // TODO Auto-generated method stub
System.out.println("OnStart");
        super.onStart(intent, startId);

    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
System.out.println("OnStartcmd");
       return super.onStartCommand(intent, flags, 10);
    }
}

AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.UserLogin"
    android:versionCode="1"
    android:versionName="1.0" >
    <application></application>
    <service android:name="com.UserLogin.BgService" />
    <uses-library android:name="com.google.android.maps" />
    <uses-library android:name="com.google.android.maps" />

    <activity
        android:configChanges="orientation|keyboardHidden"
        android:name="com.UserLogin.MyActivity" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CALL_PHONE" /></manifest>

Java类

 Intent myIn1tent = new Intent(UserLogin.this, BgService.class);
 pendingIntent = PendingIntent.getService(UserLogin.this, 0, myIn1tent , 0);
 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
 long firstTime = SystemClock.elapsedRealtime();
 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, firstTime, 30 * 1000, pendingIntent);

日志错误:

03-29 14:30:47.337: W/ActivityManager(58): Unable to start service Intent { flg=0x4 cmp=com.UserLogin/.BgService (has extras) }: not found

2
你是否将<service>标签放在<application>标签内,清单文件中的包名又如何处理? - NguyenDat
问题中的androidmanifest.xml已更新。service标签不在application标签内。 - atluriajith
1个回答

10

您的清单中服务声明必须嵌套在应用程序标记中,就像这样...

<application>
<service android:name="" />
</application>

还有...你的活动如何在应用程序标记之外运行呢? :|


1
+1,我的朋友之前因为输入了<Service>而不是<service>而遇到了有趣的问题,看来ADT团队需要进行一些更新以避免这样的事情。 - NguyenDat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接