title: Android App, "source not found" debug error - tried downloading Android Source Code
body: <p>I'm getting an error in my Android app that says "source not found" and crashes the program. I've already read a number of posts saying that the solution is to download the android source code and load that up in Eclipse, but I tried to no avail.</p>
  
  <p>Here is a bunch of information that may help with my problem, let me know if you need more!</p>
  
  <p>Stack:</p>
  
  <pre><code>Thread [&lt;1&gt; main] (Suspended (exception RuntimeException))
  ActivityThread.performLaunchActivity(ActivityThrea d$ActivityRecord, Intent) line: 2663
  ActivityThread.handleLaunchActivity(ActivityThread $ActivityRecord, Intent) line: 2679
  ActivityThread.access$2300(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 125
  ActivityThread$H.handleMessage(Message) line: 2033
  ActivityThread$H(Handler).dispatchMessage(Message) line: 99
  Looper.loop() line: 123
  ActivityThread.main(String[]) line: 4627
  Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
  Method.invoke(Object, Object...) line: 521
  ZygoteInit$MethodAndArgsCaller.run() line: 868
  ZygoteInit.main(String[]) line: 626
  NativeStart.main(String[]) line: not available [native method]
  </code></pre>
  
  <p>Is it weird that the first entry is 'ActivityThrea d' with the 'd' cut off? If this is the problem, what went wrong and how do I fix it?</p>
  
  <p>The line of code the debug stops on:</p>
  
  <pre><code>public void AddAnimationID(String index, Integer view)
  {
   animations.put(index, view);
  }
  </code></pre>
  
  <p>'animations' is a Dictionary and is a member of class Alien. I am calling it like:</p>
  
  <pre><code>Alien alien;
  alien.AddAnimationID("idle", R.drawable.idle);
  </code></pre>
  
  <p>I am correct in thinking that R.drawable.idle is an int right? findViewByID takes an int for the argument... </p>
  
  <p>Here is the logcat, I tried to pinpoint where in the log it started the application, sorry if its too much.</p>
  
  <pre><code>I/ActivityManager(   59): Displayed activity com.android.launcher/com.android.la
  uncher2.Launcher: 21357 ms (total 21357 ms)
  I/Launcher.Model(  118): not binding apps: no Launcher activity
  D/dalvikvm(  118): GC_EXPLICIT freed 5222 objects / 297520 bytes in 114ms
  D/dalvikvm(  118): GC_EXPLICIT freed 11360 objects / 562112 bytes in 94ms
  D/PackageParser(   59): Scanning package: /data/app/vmdl45576.tmp
  I/PackageParser(   59): Game.Main: compat added android.permission.WRITE_EXTERNA
  L_STORAGE android.permission.READ_PHONE_STATE
  I/PackageManager(   59): Removing non-system package:Game.Main
  I/ActivityManager(   59): Force stopping package Game.Main uid=10032
  D/dalvikvm(  118): GC_EXTERNAL_ALLOC freed 319 objects / 18064 bytes in 73ms
  D/dalvikvm(   59): GC_FOR_MALLOC freed 6857 objects / 349752 bytes in 400ms
  D/PackageManager(   59): Scanning package Game.Main
  I/PackageManager(   59): Package Game.Main codePath changed from /data/app/Game.
  Main-2.apk to /data/app/Game.Main-1.apk; Retaining data and using new
  I/PackageManager(   59): /data/app/Game.Main-1.apk changed; unpacking
  D/installd(   34): DexInv: --- BEGIN '/data/app/Game.Main-1.apk' ---
  I/ActivityManager(   59): Starting activity: Intent { act=android.intent.action.
  MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=Game.Main/.Main }
  
  D/dalvikvm(  258): DexOpt: load 116ms, verify 200ms, opt 2ms
  D/installd(   34): DexInv: --- END '/data/app/Game.Main-1.apk' (success) ---
  W/PackageManager(   59): Code path for pkg : Game.Main changing from /data/app/G
  ame.Main-2.apk to /data/app/Game.Main-1.apk
  W/PackageManager(   59): Resource path for pkg : Game.Main changing from /data/a
  pp/Game.Main-2.apk to /data/app/Game.Main-1.apk
  D/PackageManager(   59):   Activities: Game.Main.Main
  I/ActivityManager(   59): Force stopping package Game.Main uid=10032
  E/Launcher(  118): Unable to launch. tag=ApplicationInfo(title=Alien Game) inten
  t=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
   flg=0x10200000 cmp=Game.Main/.Main }
  E/Launcher(  118): android.content.ActivityNotFoundException: Unable to find exp
  licit activity class {Game.Main/Game.Main.Main}; have you declared this activity
   in your AndroidManifest.xml?
  E/Launcher(  118):      at android.app.Instrumentation.checkStartActivityResult(
  Instrumentation.java:1404)
  E/Launcher(  118):      at android.app.Instrumentation.execStartActivity(Instrum
  entation.java:1378)
  E/Launcher(  118):      at android.app.Activity.startActivityForResult(Activity.
  java:2817)
  E/Launcher(  118):      at com.android.launcher2.Launcher.startActivityForResult
  (Launcher.java:1053)
  E/Launcher(  118):      at android.app.Activity.startActivity(Activity.java:2923
  )
  E/Launcher(  118):      at com.android.launcher2.Launcher.startActivitySafely(La
  uncher.java:1462)
  E/Launcher(  118):      at com.android.launcher2.AllApps2D.onItemClick(AllApps2D
  .java:178)
  E/Launcher(  118):      at android.widget.AdapterView.performItemClick(AdapterVi
  ew.java:284)
  E/Launcher(  118):      at android.widget.AbsListView$PerformClick.run(AbsListVi
  ew.java:1696)
  E/Launcher(  118):      at android.os.Handler.handleCallback(Handler.java:587)
  E/Launcher(  118):      at android.os.Handler.dispatchMessage(Handler.java:92)
  E/Launcher(  118):      at android.os.Looper.loop(Looper.java:123)
  E/Launcher(  118):      at android.app.ActivityThread.main(ActivityThread.java:4
  627)
  E/Launcher(  118):      at java.lang.reflect.Method.invokeNative(Native Method)
  E/Launcher(  118):      at java.lang.reflect.Method.invoke(Method.java:521)
  E/Launcher(  118):      at com.android.internal.os.ZygoteInit$MethodAndArgsCalle
  r.run(ZygoteInit.java:868)
  E/Launcher(  118):      at com.android.internal.os.ZygoteInit.main(ZygoteInit.ja
  va:626)
  E/Launcher(  118):      at dalvik.system.NativeStart.main(Native Method)
  I/installd(   34): move /data/dalvik-cache/data@app@Game.Main-1.apk@classes.dex
  -&gt; /data/dalvik-cache/data@app@Game.Main-1.apk@classes.dex
  D/PackageManager(   59): New package installed in /data/app/Game.Main-1.apk
  I/ActivityManager(   59): Force stopping package Game.Main uid=10032
  I/ActivityManager(   59): Start proc com.svox.pico for broadcast com.svox.pico/.
  VoiceDataInstallerReceiver: pid=259 uid=10028 gids={}
  D/dalvikvm(  157): GC_EXPLICIT freed 4079 objects / 247824 bytes in 605ms
  D/dalvikvm(   59): GC_EXPLICIT freed 6136 objects / 382312 bytes in 493ms
  W/RecognitionManagerService(   59): no available voice recognition services foun
  d
  I/installd(   34): unlink /data/dalvik-cache/data@app@Game.Main-2.apk@classes.de
  x
  D/AndroidRuntime(  191): Shutting down VM
  D/jdwp    (  191): adbd disconnected
  I/AndroidRuntime(  191): NOTE: attach of thread 'Binder Thread #3' failed
  I/ActivityThread(  259): Publishing provider com.svox.pico.providers.SettingsPro
  vider: com.svox.pico.providers.SettingsProvider
  D/AndroidRuntime(  269):
  D/AndroidRuntime(  269): &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; AndroidRuntime START &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
  D/AndroidRuntime(  269): CheckJNI is ON
  D/AndroidRuntime(  269): --- registering native functions ---
  I/ActivityManager(   59): Starting activity: Intent { act=android.intent.action.
  MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=Game.Main/.Main }
  
  I/ActivityManager(   59): Start proc Game.Main for activity Game.Main/.Main: pid
  =273 uid=10032 gids={1015}
  I/ARMAssembler(   59): generated scanline__00000077:03545404_00000004_00000000 [
   47 ipp] (67 ins) at [0x322b68:0x322c74] in 4370882 ns
  W/Game.Main.Main(  273): SIS is null
  D/AndroidRuntime(  273): Shutting down VM
  W/dalvikvm(  273): threadid=1: thread exiting with uncaught exception (group=0x4
  001d800)
  E/AndroidRuntime(  273): FATAL EXCEPTION: main
  E/AndroidRuntime(  273): java.lang.RuntimeException: Unable to start activity Co
  mponentInfo{Game.Main/Game.Main.Main}: java.lang.NullPointerException
  E/AndroidRuntime(  273):        at android.app.ActivityThread.performLaunchActiv
  ity(ActivityThread.java:2663)
  E/AndroidRuntime(  273):        at android.app.ActivityThread.handleLaunchActivi
  ty(ActivityThread.java:2679)
  E/AndroidRuntime(  273):        at android.app.ActivityThread.access$2300(Activi
  tyThread.java:125)
  E/AndroidRuntime(  273):        at android.app.ActivityThread$H.handleMessage(Ac
  tivityThread.java:2033)
  E/AndroidRuntime(  273):        at android.os.Handler.dispatchMessage(Handler.ja
  va:99)
  E/AndroidRuntime(  273):        at android.os.Looper.loop(Looper.java:123)
  E/AndroidRuntime(  273):        at android.app.ActivityThread.main(ActivityThrea
  d.java:4627)
  E/AndroidRuntime(  273):        at java.lang.reflect.Method.invokeNative(Native
  Method)
  E/AndroidRuntime(  273):        at java.lang.reflect.Method.invoke(Method.java:5
  21)
  E/AndroidRuntime(  273):        at com.android.internal.os.ZygoteInit$MethodAndA
  rgsCaller.run(ZygoteInit.java:868)
  E/AndroidRuntime(  273):        at com.android.internal.os.ZygoteInit.main(Zygot
  eInit.java:626)
  E/AndroidRuntime(  273):        at dalvik.system.NativeStart.main(Native Method)
  
  E/AndroidRuntime(  273): Caused by: java.lang.NullPointerException
  E/AndroidRuntime(  273):        at Game.Main.Main.onCreate(Main.java:81)
  E/AndroidRuntime(  273):        at android.app.Instrumentation.callActivityOnCre
  ate(Instrumentation.java:1047)
  E/AndroidRuntime(  273):        at android.app.ActivityThread.performLaunchActiv
  ity(ActivityThread.java:2627)
  E/AndroidRuntime(  273):        ... 11 more
  W/ActivityManager(   59):   Force finishing activity Game.Main/.Main
  I/ActivityManager(   59): Starting activity: Intent { act=android.intent.action.
  MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=Game.Main/.Main }
  
  D/AndroidRuntime(  269): Shutting down VM
  D/jdwp    (  269): adbd disconnected
  I/AndroidRuntime(  269): NOTE: attach of thread 'Binder Thread #3' failed
  W/ActivityManager(   59): Activity pause timeout for HistoryRecord{43ed84f8 Game
  .Main/.Main}
  I/ARMAssembler(   59): generated scanline__00000077:03515104_00000000_00000000 [
   33 ipp] (47 ins) at [0x305640:0x3056fc] in 1148283 ns
  W/ActivityManager(   59): Launch timeout has expired, giving up wake lock!
  </code></pre>
  
  <p>Here is the class Alien:</p>
  
  <pre><code>package Game.Main;
  
  import java.util.Dictionary;
  
  import android.graphics.drawable.AnimationDrawable;
  import android.widget.ImageView;
  
  public class Alien 
  {
      private AlienState state;
      private Dictionary&lt;String, Integer&gt; animations;
      private ImageView imageView;
  
      public Alien()
      {
  
      }
  
      public void AddAnimationID(String index, Integer view)
      {
          animations.put(index, view);
      }
  
      public Integer GetAnimationID(String index)
      {
          return animations.get(index);
      }
  
      public void SetImageView(ImageView view)
      {
          imageView = view;
          if(animations.get("idle") != null)
          {
              imageView.setBackgroundResource(R.drawable.idle);
              state = AlienState.idle;
          }
      }
  
      public ImageView GetImageView()
      {
          return imageView;
      }
  
      public void ChangeView(String index)
      {
          if(animations.get(index) != null)
          {
              imageView.setBackgroundResource(animations.get(index));
              state = AlienState.valueOf(index);
          }
      }
  }
  </code></pre>
  
  <p>Here is the onCreate function that this is called from and related information:</p>
  
  <pre><code>package Game.Main;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import Game.Main.MainView.MainThread;
  import android.app.Activity;
  import android.content.Intent;
  import android.content.pm.PackageManager;
  import android.content.pm.ResolveInfo;
  import android.graphics.drawable.AnimationDrawable;
  import android.os.Bundle;
  import android.speech.RecognizerIntent;
  import android.util.Log;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.animation.Animation.AnimationListener;
  import android.widget.Button;
  import android.widget.ImageView;
  import android.widget.TextView;
  
  public class Main extends Activity implements OnClickListener {
  
      private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
  
      private ArrayList&lt;String&gt; dictionary;
      private TextView txtText;
  
      private MainThread thread;
      private MainView view;
  
      private AnimationDrawable anim;
  
      private Alien alien;
  
      @Override // called when Main is created.
      public void onCreate(Bundle savedInstanceState) {
  
          // reload from previous instance
          super.onCreate(savedInstanceState);
  
          // set default content view
          setContentView(R.layout.main);
  
          view = (MainView)findViewById(R.id.mainView);
          thread = view.GetThread();
  
          if (savedInstanceState == null) {
              // we were just launched: set up a new game
              thread.SetState(GameState.Active);
              Log.w(this.getClass().getName(), "SIS is null");
          } else {
              // we are being restored: resume a previous game
              thread.RestoreState(savedInstanceState);
              Log.w(this.getClass().getName(), "SIS is nonnull");
          }
  
  
  
          // setup speak button
          Button speakButton = (Button)findViewById(R.id.btn_speak);
  
          // setup text box
          txtText = (TextView)findViewById(R.id.txt_text);
  
          // setup our dictionary
          dictionary = new ArrayList&lt;String&gt;();
          dictionary.add("sit");
          dictionary.add("eat");
          dictionary.add("jump");
          dictionary.add("think");
  
          alien.AddAnimationID("idle", R.drawable.idle);
          alien.AddAnimationID("eat", R.drawable.eat);
          alien.AddAnimationID("jump", R.drawable.jump);
          alien.AddAnimationID("think", R.drawable.think);
          alien.AddAnimationID("run", R.drawable.run);
          alien.AddAnimationID("sit", R.drawable.sit);
          alien.SetImageView((ImageView)findViewById(R.id.alien_image));
  
          // check to see if a recognition activity is present
          PackageManager pm = getPackageManager();
          List&lt;ResolveInfo&gt; activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
  
          // if activities were found, cancel speech recognition
          if (activities.size() != 0)
              speakButton.setOnClickListener(this);
          else 
          {
              speakButton.setEnabled(false);
              speakButton.setText("Recognizer not present");
          }
      }
  </code></pre>
  
  <p>I am using Eclipse on Windows 7 x64. I have all of the newest updates to the android SDK and I downloaded the android source code and added it to the Eclipse patch because previous posts led me to try that. The code breaks for debug when the first time AddAnimationID is called. I hope this is all you need, thanks! Sorry if I'm doing this wrong by the way, I'm somewhat new at this.</p>
  
  <p>Edit: Looks like I didn't have enough breakpoints, the culprit is not the AddAnimationID function but actually the SetImageView one. The if statement seems to not work, so I've commented it out for now. I'll post back once I've figured it out. It's probably something silly that works in another language but not Java...</p>