Try using startService() to start your service instead of startActivity
().


Yusuf Saib
Android
·T· · ·Mobile· stick together
The views, opinions and statements in this email are those of the
author solely in their individual capacity, and do not necessarily
represent those of T-Mobile USA, Inc.



On Jul 30, 8:06 am, kolby <kolbys...@gmail.com> wrote:
> Hi all,
> I'm trying to call a service directly, and I'm getting an
> ActivityNotFoundException thrown.
>
> My main class looks like this:
> --------------------------------------------------------------------------- 
> ----------------------------------------------------
>     @Override
>     public void onCreate(Bundle savedInstanceState) {
>         super.onCreate(savedInstanceState);
>         PackageManager pm = getPackageManager();
>         try {
>           Log.i(TAG,"retrieving services:");
>           PackageInfo pinfo = pm.getPackageInfo("test.another",
> PackageManager.GET_ACTIVITIES | PackageManager.GET_SERVICES);
>           for (ServiceInfo serv : pinfo.services) {
>             Log.i(TAG,"declared service: "+serv.name);
>             Log.i(TAG,"  package name: "+serv.packageName);
>             Log.i(TAG,"  enabled: "+serv.enabled);
>             Log.i(TAG,"  exported: "+serv.exported);
>           }
>         } catch (NameNotFoundException e) {
>           // TODO Auto-generated catch block
>           e.printStackTrace();
>         }
>
>         Intent i = new Intent();
>         i.setClassName("test.another", "test.another.MyService");
>         startActivity(i);
>         setContentView(R.layout.main);
>     }
> --------------------------------------------------------------------------- 
> ----------------------------------
>
> My service is empty, minus some log messages:
>
> --------------------------------------------------------------------------- 
> ---------------------------------
>   public void onCreate() {
>     Log.i(T,"created");
>   }
>
>   public void onStart(Intent i, int code) {
>     Log.i(T,"started");
>   }
>
>   @Override
>   public IBinder onBind(Intent intent) {
>     // TODO Auto-generated method stub
>     return null;
>   }
> --------------------------------------------------------------------------- 
> ---------------------------------
>
> And the service is declared in the manifest file:
> --------------------------------------------------------------------------- 
> ------------------------------------
> <?xml version="1.0" encoding="utf-8"?>
> <manifest xmlns:android="http://schemas.android.com/apk/res/android";
>       package="test.another"
>       android:versionCode="1"
>       android:versionName="1.0">
>     <application android:icon="@drawable/icon" android:label="@string/
> app_name">
>         <activity android:name=".Main"
>                   android:label="@string/app_name">
>             <intent-filter>
>                 <action android:name="android.intent.action.MAIN" />
>                 <category
> android:name="android.intent.category.LAUNCHER" />
>             </intent-filter>
>         </activity>
>     <service android:name="MyService"></service>
> </application>
>     <uses-sdk android:minSdkVersion="3" />
> </manifest>
>
> --------------------------------------------------------------------------- 
> -----------------------------------------
>
> When I run it in either the emulator or on my phone, I get this log:
>
> --------------------------------------------------------------------------- 
> -----------------------------------------
> 07-30 10:56:52.676: INFO/main(1686): retrieving services:
> 07-30 10:56:52.686: INFO/main(1686): declared service:
> test.another.MyService
> 07-30 10:56:52.686: INFO/main(1686):   package name: test.another
> 07-30 10:56:52.696: INFO/main(1686):   enabled: true
> 07-30 10:56:52.696: INFO/main(1686):   exported: false
> 07-30 10:56:52.696: INFO/ActivityManager(56): Starting activity:
> Intent { comp={test.another/test.another.MyService} }
> 07-30 10:56:52.716: DEBUG/AndroidRuntime(1686): Shutting down VM
> 07-30 10:56:52.716: WARN/dalvikvm(1686): threadid=3: thread exiting
> with uncaught exception (group=0x4000fe70)
> 07-30 10:56:52.716: ERROR/AndroidRuntime(1686): Uncaught handler:
> thread main exiting due to uncaught exception
> 07-30 10:56:52.746: DEBUG/dalvikvm(1622): GC freed 5960 objects /
> 376680 bytes in 423ms
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):
> java.lang.RuntimeException: Unable to start activity ComponentInfo
> {test.another/test.another.Main}:
> android.content.ActivityNotFoundException: Unable to find explicit
> activity class {test.another/test.another.MyService}; have you
> declared this activity in your AndroidManifest.xml?
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> 2268)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> 2284)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.ActivityThread.access$1800(ActivityThread.java:112)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.os.Handler.dispatchMessage(Handler.java:99)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.os.Looper.loop(Looper.java:123)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.ActivityThread.main(ActivityThread.java:3948)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> java.lang.reflect.Method.invokeNative(Native Method)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> java.lang.reflect.Method.invoke(Method.java:521)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
> (ZygoteInit.java:782)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> dalvik.system.NativeStart.main(Native Method)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686): Caused by:
> android.content.ActivityNotFoundException: Unable to find explicit
> activity class {test.another/test.another.MyService}; have you
> declared this activity in your AndroidManifest.xml?
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.Instrumentation.checkStartActivityResult
> (Instrumentation.java:1480)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.Instrumentation.execStartActivity(Instrumentation.java:
> 1454)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.Activity.startActivityForResult(Activity.java:2656)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> test.another.Main.onCreate(Main.java:38)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> 1123)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> 2231)
> 07-30 10:56:52.746: ERROR/AndroidRuntime(1686):     ... 11 more
>
> --------------------------------------------------------------------------- 
> ----------------------------------------------------
>
> I'm at my wits end here, but to make matters worse, I have an old
> project with the same code that works fine. I dumped my development
> environment, re-installed everything, still no dice.
>
> Any help would be greatly appreciated,
> Michael
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to