I've the same issue described here but i can't understand whats wrong.
My issue is: Unable to start service Intent { act=.connections.MoodyService } U=0: not found
EDIT I've changed my package from connections to service in the source code, sorry for the confusion
My manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.moody" android:installLocation="auto" android:versionCode="0" android:versionName="0.6.7 alpha" > <uses-sdk android:maxSdkVersion="18" android:minSdkVersion="14" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:allowClearUserData="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="activities.MainActivity" android:label="@string/app_name" > </activity> <activity android:name="activities.Menu_esq" android:label="@string/title_activity_menu_esq" > </activity> <activity android:name="activities.BaseActivity" android:label="@string/title_activity_base" > </activity> <activity android:name="activities.MainView" android:label="@string/title_activity_main_view" > </activity> <activity android:name="activities.LoginActivity" android:label="@string/app_name" android:noHistory="true" android:windowSoftInputMode="adjustResize|stateVisible" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.moody.LeftActivity" android:label="@string/title_activity_left" > </activity> <activity android:name="com.example.moody.RightActivity" android:label="@string/title_activity_right" > </activity> <activity android:name="activities.UserDetailsActivity" android:label="@string/title_activity_user_details" > </activity> <activity android:name="fragments.TopicsPreview" android:label="@string/title_activity_copy_of_topics_preview" > </activity> <activity android:name="activities.Loading" > </activity> <service android:name=".service.MoodyService" android:icon="@drawable/ic_launcher" android:label="@string/moody_service" > </service> </application>
service is the package and MoodyService is the class name
My service class
public class MoodyService extends Service { public MoodyService() { // TODO Auto-generated constructor stub } private boolean isRunning = false; Object getContent; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); // Announcement about starting Toast.makeText(this, "Starting the Demo Service", Toast.LENGTH_SHORT) .show(); // Start a Background thread isRunning = true; Thread backgroundThread = new Thread(new BackgroundThread()); backgroundThread.start(); // We want this service to continue running until it is explicitly // stopped, so return sticky. return START_STICKY; } @Override public void onDestroy() { super.onDestroy(); // Stop the Background thread isRunning = false; // Announcement about stopping Toast.makeText(this, "Stopping the Demo Service", Toast.LENGTH_SHORT) .show(); } private class BackgroundThread implements Runnable { int counter = 0; public void run() { try { counter = 0; while (isRunning) { System.out.println("" + counter++); new Contents().getAll(getResources(), getApplicationContext()); Thread.currentThread().sleep(5000); } System.out.println("Background Thread is finished........."); } catch (Exception e) { e.printStackTrace(); } } }
And in my main Intent.
Intent start = new Intent(".service.MoodyService"); this.startService(start);
and also tried
Intent intent = new Intent(this, MoodyService.class); this.startService(intent);
and tried with the full path
<service android:name="com.example.moody.service.MoodyService" android:icon="@drawable/ic_launcher" android:label="@string/moody_service" >
Solved
I deleted the period in the beginning of the package name in the manifest and it worked, in another words:
This doesn't work:
.yourPackage.YourClass
But this does work:
yourPackage.YourClass
And in the main:
Intent intent = new Intent(this, MoodyService.class); this.startService(intent);
But it goes against what is written in the documentation:
android:name The name of the Service subclass that implements the service. This should be a fully qualified class name (such as, "com.example.project.RoomService"). However, as a shorthand, if the first character of the name is a period (for example, ".RoomService"), it is appended to the package name specified in the element. Once you publish your application, you should not change this name (unless you've set android:exported="false").
There is no default. The name must be specified.
The service must be also be included in the Manifest:
<service android:name="com.x.x.serviceclass"></service>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With