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