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;
}
可以帮助我吗?
答案 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 ..你可以通过
直接访问/设置idSomeApp.ids
并按
设置 SomeApp.ids = (another array)
因为它是&#34;公共静态&#34;所以不需要吸气剂和制定者 2:并在添加到数组之前检查字符串是否为空
if(userIdname != null && !userIdname.IsEmpty){
SomeApp.ids.add(userIdname);
}
并将UserIdname更改为userIdname ..就像我做的那样.. nullpointer异常的可能场景来自你的getter或String ..(我猜)