Category Archives: android

android debugging fails

I’m using eclipse as my chosen SDK for android development.  It’s great because I feel right at home; I don’t have to learn yet another IDE.

However, I am getting rather frustrated with trying to debug my android application.  Quite often eclipse just fails to communicate with the emulator or the device (depending on which I’ve chosen to run the application on).

I found a few tips on the developer.android website which are quite helpful.  I would also like to add a discovery of my own.  If you have two instances of eclipse running with different android applications, this does not a make a happy debugger!  So if you are having trouble with your debugger and you have two projects open, just close one.

Why do I have more than one instance of eclipse running you might ask.  Well it is simply to compare working code with new code that is similar but still in the making.

So as promised.  Here are the official tips for getting your debugger running again:

developer.android

When communication doesn’t seem to be happening between Eclipse and the emulator, symptoms can include: nothing happening when you press run, the emulator hanging waiting for a debugger to connect, or errors that Eclipse reports about not being able to find the emulator or shell. By far the most common symptom is that when you press run, the emulator starts (or is already running), but the application doesn’t start.

You may find any of these steps will fix the problem and with practice you probably can figure out which one you need to do for your particular issue, but to start with, the safest option is to run through all of them in order:

  1. Quit the emulator if it is running
  2. Check that any emulator processes are killed (sometimes they can hang, use ps on unix or mac, or task manager in the process view on windows).
  3. Quit Eclipse
  4. From the command line, type:
    adb kill-server
  5. Start Eclipse and try again

And here is the link:

http://developer.android.com/guide/appendix/faq/troubleshooting.html#eclipse

Reading a file from an Android Test Project

Don’t you just feel like a fool when you can’t even set up your test project to use to read a file?  It’s a common approach, you use a local file instead of a remote resource to test your processing of the data.

Well, I had to do a bit of hunting so I thought that I would share it with you.  The more posts on this topic, the quicker it will be for the next person who gets stuck on this to find the answer.

So, I was testing a POJO and felt that all I needed was to extend the AndroidTestCase but this assumption was incorrect.  In order to access the test project’s own resources you need to extend the InstrumentationTestCase

In my case I stored my test data in res\raw so that I could use a stream reader to convert the data to a simple string.  Here’s how I did it:


protected void setUp() throws Exception {
super.setUp();
try{
Resources res = getInstrumentation().getContext().getResources();
InputStream instream = res.openRawResource(R.raw.uk_atom);

...

}catch(Exception e){
Log.d(LOGTAG, e.getMessage());
}

}

Now you are not restricted to using the raw resource there are plenty of other types of resources, take a look at the documentation here: andriod developers

Happy coding!

Java Model Exception when cleaning android project

Android woes

I thought that I would add this little note just in case there is anyone out there who has also suffered this problem. It can occur if you remove an android project from your workspace and then decide to add it again as a new project. In my case I had exported the project from subversion and then deleted the original (for reasons of sanity in my repository).

So the problem occurs when you add the project back to your workspace. I’m presuming that some of the settings get really confused when you try to add a project that used to be part of the workspace. I’m not really concerned with what but more interested in the fix. Here is the error:

Java Model Status [gen [in HelloActivity] does not exist]

It occurs when you try to clean your project and you just get a red cross on your project folder and nowhere else; very irritating!

So the fix

You may only need to remove the following files:
.project
.classpath
.DS_Store (if it exists)
and then clean the project

If this doesn’t work try this:

  1. backup workspace .metadata file
  2. Restart eclipse
  3. In eclipse, from windows menu – preferences re-enter the android SDK location
  4. Now add your project as an existing android project

You might need to re-import any dependencies and mess about with the ordering after that but otherwise it should have done the job.