Hi I am getting FATAL EXCEPTION when the ArrayList items is
populated;

can you help ?

Thanks
Graham


W/dalvikvm(11235): threadid=9: thread exiting with uncaught exception
(group=0x4
001e578)
E/AndroidRuntime(11235): FATAL EXCEPTION: Thread-10
E/AndroidRuntime(11235): java.lang.NullPointerException
E/AndroidRuntime(11235):        at
com.example.MyService.print_result(MyService.
java:62)
E/AndroidRuntime(11235):        at com.example.MyService
$1.run(MyService.java:54
)
E/AndroidRuntime(11235):        at java.lang.Thread.run(Thread.java:
1019)
W/ActivityManager( 2696):   Force finishing activity
com.example/.ServicesDemo
I/OrientationDebug( 2696): [pwm] in updateOrientationListenerLp()
V/OrientationDebug( 2696): in updateOrientationListenerLp(), Screen
status=true,
 current orientation=1, SensorEnabled=true
I/OrientationDebug( 2696): [pwm] needSensorRunningLp(), return true #4
I/Launcher( 2852): onResume(). mIsNewIntent : false screenOff: false
E/        ( 2696): Dumpstate > /data/log/dumpstate_app_error
I/dumpstate(11275): begin
D/KeyguardViewMediator( 2696): handleTimeout
W/PowerManagerService( 2696): Timer 0x3->0x3|0x3


package com.example;


import java.util.ArrayList;

import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {

ArrayList<String> items = null;

public String ORIG = "";
private static final String TAG = "MyService";
public Bundle data = new Bundle();


@Override
public IBinder onBind(Intent intent) {
return null;
}


public static String getTag() {
return TAG;
}


@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();

}

@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");

}

@Override
public void onStart(Intent intent, int startid) {
Log.d(TAG, "onStart");
data = intent.getExtras();
ORIG = data.getString("originator");
Log.d(TAG, "onCreate");
Thread initBkgdThread = new Thread(new Runnable() {
public void run() {
print_result(ORIG);
}
});
initBkgdThread.start();
}

public void print_result(String orig){
Log.d(TAG, "HELLO WORLD:" + orig);
items.add(orig);
if (items != null) {
items.add(orig);
String toadd = orig.toString();

if(items.contains(toadd)){
Log.d(TAG, "Element already exists exiting ");
} else {
Log.d(TAG, "Adding Element");
    items.add(toadd);

}

}
else {
Log.d(TAG, "IS NULL");
}
}

}

On 23 Nov., 12:53, Kostya Vasilyev <kmans...@gmail.com> wrote:
> Look below "caused by" in the logcat to identify where the
> NullPointerException occurrs. Then fix it.
>
> 23 ноября 2011 г. 15:36 пользователь Graham Bright <gbwienmobil...@gmail.com
>
>
>
> > написал:
> > Can anyone help?
>
> > Thanks
> > Graham
> > On Nov 23, 2011 11:51 a.m., "Graham Bright" <gbwienmobil...@gmail.com>
> > wrote:
>
> >> Hi,
>
> >> I am creating service which will run in the background and contain a
> >> blocking list  (implemented using ArrayList) which may be used later
> >> by other activites.
>
> >> My Problem:-
>
> >> From my activity Services Demo I pass data to my service using
>
> >> dataIntent.putExtra("originator", x);
>
> >> this is fine but when I try to store this data in my Service in an
> >> ArrayList called Items I get an exception and I cannot figure out
> >> why.
>
> >> The problem is in my Service code MyService :
>
> >>                if(items.contains(ORIG)){
> >>                        Log.d(TAG, "Element already exists exiting ");
> >>                } else {
> >>                        Log.d(TAG, "Adding Element");
> >>                    items.add(ORIG);
>
> >>                }
> >> Please help.
>
> >> EXCEPTION
> >> java.lang.RuntimeException: Unable to start service ...... with
> >> intent
>
> >> caused by: java.lang.NullPointerException
>
> >> Best Regards,
>
> >> Graham
>
> >> CODE Eclipse
>
> >> Activity -> ServicesDemo
> >> Service -> MyService
>
> >> ACTIVITY ServicesDemo
>
> >> package com.example;
>
> >> import android.app.Activity;
> >> import android.content.Intent;
> >> import android.os.Bundle;
> >> import android.util.Log;
> >> import android.view.View;
> >> import android.view.View.OnClickListener;
> >> import android.widget.Button;
> >> import android.widget.EditText;
>
> >> public class ServicesDemo extends Activity implements OnClickListener
> >> {
> >>  private static final String TAG = "ServicesDemo";
> >>  Button buttonStart, buttonStop;
> >>  EditText Input;
> >>  String x = "";  //test pass to my service
>
> >>  @Override
> >>  public void onCreate(Bundle savedInstanceState) {
> >>    super.onCreate(savedInstanceState);
> >>    setContentView(R.layout.main);
>
> >>    buttonStart = (Button) findViewById(R.id.buttonStart);
> >>    buttonStop = (Button) findViewById(R.id.buttonStop);
> >>    Input = (EditText) findViewById(R.id.INPUT);
> >>    buttonStart.setOnClickListener(this);
> >>    buttonStop.setOnClickListener(this);
>
> >>  }
>
> >>  public void onClick(View src) {
> >>    switch (src.getId()) {
> >>    case R.id.buttonStart:
> >>      Log.d(TAG, "onClick: starting srvice");
> >>      Intent dataIntent = new Intent(ServicesDemo.this,
> >> MyService.class);
> >>      x = Input.getText().toString();
> >>      dataIntent.putExtra("originator", x);
> >>      startService(dataIntent);
>
> >>      break;
>
> >>    case R.id.buttonStop:
>
> >>      Log.d(TAG, "onClick: stopping srvice");
> >>      //implicit starting
> >>      stopService(new Intent(this, MyService.class));
> >>      break;
> >>    }
> >>  }
>
> >> public static String getTag() {
> >>        return TAG;
> >> }
> >> }
> >> -----------------------------------<end ACTIVITY>
>
> >> --Service MyService ---------
> >> package com.example;
>
> >> import java.util.ArrayList;
>
> >> import android.app.Service;
> >> import android.content.Intent;
> >> import android.os.Bundle;
> >> import android.os.IBinder;
> >> import android.util.Log;
> >> import android.widget.Toast;
>
> >> public class MyService extends Service {
>
> >>        ArrayList<String> items;
>
> >>        public String ORIG = "";
> >>        private static final String TAG = "MyService";
> >>        public Bundle data = new Bundle();
>
> >>        @Override
> >>        public IBinder onBind(Intent intent) {
> >>                return null;
> >>        }
>
> >>        public static String getTag() {
> >>                return TAG;
> >>        }
>
> >>        @Override
> >>        public void onCreate() {
> >>                Toast.makeText(this, "My Service Created",
> >> Toast.LENGTH_LONG).show();
> >>                Log.d(TAG, "onCreate");
>
> >>        }
>
> >>        @Override
> >>        public void onDestroy() {
> >>                Toast.makeText(this, "My Service Stopped",
> >> Toast.LENGTH_LONG).show();
> >>                Log.d(TAG, "onDestroy");
>
> >>        }
>
> >>        @Override
> >>        public void onStart(Intent intent, int startid) {
> >>                Log.d(TAG, "onStart");
> >>                data = intent.getExtras();
> >>                ORIG = data.getString("originator");
> >>                Toast.makeText(this, "My Service Started with passed in
> >> value " +
> >> ORIG, Toast.LENGTH_LONG).show();
> >>                if(items.contains(ORIG)){
> >>                        Log.d(TAG, "Element already exists exiting ");
> >>                } else {
> >>                        Log.d(TAG, "Adding Element");
> >>                    items.add(ORIG);
>
> >>                }
>
> >>                Thread initBkgdThread = new Thread(new Runnable() {
> >>                        public void run() {
> >>                                //print_result();
> >>                        }
> >>                        });
> >>                        initBkgdThread.start();
>
> >>        }
>
> >>        public void print_result(String orig){
> >>                Log.d(TAG, "HELLO WORLD:" + orig);
>
> >>        }
>
> >> }
>
> >> --------------end of service-----------
>
> >  --
> > 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- Zitierten Text 
> >ausblenden -
>
> - Zitierten Text anzeigen -

-- 
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