我的应用程序的Arraylist Nullpointer异常

时间:2014-09-04 05:54:37

标签: android service arraylist static nullpointerexception

heloo每一个我都有一个带有静态arraylist的应用程序类,当我尝试将一个项添加到arraylist时,我得到nullpointer异常..这里是我的代码

public class SomeApp extends Application {
   public static ArrayList<String> ids = new ArrayList<String>();
   //then i have getters and setters for ids..
   public static ArrayList<String> getIds() {
    return ids;
   }
   public static void setIds(ArrayList<String> ids) {
    SomeApp.ids = ids;
   }
}

现在这是我的服务类

public class BpA extends Service {
 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
      // note i created a new thread so the below code could run in..       
      SomeApp.getIds().add(UserIdname);  // i get nullpointer exception on this line
      return START_STICKY;
}

可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

SomeAppDid您在清单文件中设置了应用程序名称。

<application
        android:name="you_package.SomeApp"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar" >

</application>

在ArrayList中添加UserIdname之前添加空检查。

如果它为null,则检查ArrayList中的null,然后重新创建它。

public class BpA extends Service {
 @Override 
 public int onStartCommand(Intent intent, int flags, int startId) {
      // note i created a new thread so the below code could run in..  
if(SomeApp.getIds() != null)      
      SomeApp.getIds().add(UserIdname);  // i get nullpointer exception on this line 
      return START_STICKY;
} 

答案 1 :(得分:0)

直接试试......

if(UserIdname != null){
    SomeApp.ids.add(UserIdname);
}

答案 2 :(得分:0)

我想象你的代码,并在所有场景下运行它。所以尝试这可能会有效 首先删除getter和setter ..你可以通过

直接访问/设置id
SomeApp.ids

并按

设置
 SomeApp.ids = (another array)

因为它是&#34;公共静态&#34;所以不需要吸气剂和制定者 2:并在添加到数组之前检查字符串是否为空

if(userIdname != null && !userIdname.IsEmpty){
   SomeApp.ids.add(userIdname);
 }

并将UserIdname更改为userIdname ..就像我做的那样.. nullpointer异常的可能场景来自你的getter或String ..(我猜)