Android 致命异常:线程10

Android 致命异常:线程10,android,Android,您好,我正在调用一个服务来填充一个数组,但是当数组填充了print_result中的值时,我得到了一个异常致命异常。如果语句items.add(orig)被调用,我就有这个问题 例外情况 W/dalvikvm(11235): threadid=9: thread exiting with uncaught exception (group=0x4 001e578) E/AndroidRuntime(11235): FATAL EXCEPTION: Thread-10 E/AndroidRunti

您好,我正在调用一个服务来填充一个数组,但是当数组填充了print_result中的值时,我得到了一个异常致命异常。如果语句items.add(orig)被调用,我就有这个问题

例外情况

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;
导入java.util.ArrayList;
导入android.app.Service;
导入android.content.Intent;
导入android.os.Bundle;
导入android.os.IBinder;
导入android.util.Log;
导入android.widget.Toast;
公共类MyService扩展服务{
arraylistitems=null;
公共字符串ORIG=“”;
私有静态最终字符串TAG=“MyService”;
公共捆绑数据=新捆绑();
@凌驾
公共IBinder onBind(意向){
返回null;
}
公共静态字符串getTag(){
返回标签;
}
@凌驾
public void onCreate(){
Toast.makeText(这是“我的服务已创建”,Toast.LENGTH_LONG.show();
}
@凌驾
公共空间{
Toast.makeText(这是“我的服务已停止”,Toast.LENGTH_LONG.show();
Log.d(标签“onDestroy”);
}
@凌驾
公共无效启动(Intent Intent,int startid){
Log.d(标签“onStart”);
data=intent.getExtras();
ORIG=data.getString(“发起人”);
Log.d(标记为“onCreate”);
Thread initBkgdThread=新线程(new Runnable(){
公开募捐{
打印结果(原始);
}
});
initBkgdThread.start();
}
公共作废打印结果(字符串源){
Log.d(标记“HELLO WORLD:+orig”);
项目。添加(原始);
如果(项!=null){
项目。添加(原始);
字符串toadd=orig.toString();
if(项目包含(toadd)){
Log.d(标记“元素已存在”);
}否则{
Log.d(标记“添加元素”);
项目。添加(toadd);
}
}
否则{
Log.d(标记“为空”);
}
}
}

您必须首先初始化阵列

items = new ArrayList<String>();
items=newarraylist();

您永远不会初始化
数组列表。将此添加到您的
onCreate()
方法:

items = new ArrayList<String>();
items=newarraylist();

您需要初始化项目。此外,您还要添加两次
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 "); 
        }
}
items.add(orig);
if (items != null) {
    items.add(orig);
    String toadd = orig.toString();

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