java.lang.RuntimeException:无法启动活动ComponentInfo:java.lang.NullPointerException:storage == null [英] java.lang.RuntimeException: Unable to start activity ComponentInfo: java.lang.NullPointerException: storage == null
问题描述
* 我正在尝试将项目动态添加到列表视图.但是,我遇到了运行时异常.请帮忙. 全局变量值"有问题吗? 我尝试通过打印日志进行调试,并且能够看到存储在变量*
*I am trying to add items to the list view dynamically. But, I am getting a run time exception.Please help. Is there a problem with the global variable "values"? I tried to debug by printing the logs and I am able to see the values stored in the variable *
public class FriendsActivity extends ListFragment implements TabListener {
private Fragment mFragment;
private String[] values;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setContentView(R.layout.activity_friends);
}
@SuppressWarnings("deprecation")
public void onActivityCreated(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onActivityCreated(savedInstanceState);
String su = User.getLoggedInUsername();
friends.query(friends.class, new StackMobQuery().field(new StackMobQueryField("uname").isEqualTo(su)), new StackMobQueryCallback<friends>(){
@Override
public void failure(StackMobException arg0) {
// TODO Auto-generated method stub
}
public void success(List<friends> arg0) {
// TODO Auto-generated method stub
if(arg0.size()>0){
FriendsActivity.this.values = new String[arg0.size()];
for(int i=0;i<arg0.size();i++){
friends us = arg0.get(i);
values[i] = us.getUname();
}
for(int i=0;i<values.length;i++)
Log.i("Friends",values[i]);
}
else{
values = new String[]{"xyz","abc","dbz"};
}
}
});
//String uname=User.getLoggedInUsername();
//Log.i("User Name",uname);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
这是错误列表
05-27 16:42:03.667: E/Trace(814): error opening trace file: No such file or directory (2)
05-27 16:46:17.718: E/AndroidRuntime(814): FATAL EXCEPTION: main
05-27 16:46:17.718: E/AndroidRuntime(814): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.cloudchat/com.myapp.cloudchat.HomeScreenActivity}: java.lang.NullPointerException: storage == null
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.os.Handler.dispatchMessage(Handler.java:99)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.os.Looper.loop(Looper.java:137)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-27 16:46:17.718: E/AndroidRuntime(814): at java.lang.reflect.Method.invokeNative(Native Method)
05-27 16:46:17.718: E/AndroidRuntime(814): at java.lang.reflect.Method.invoke(Method.java:511)
05-27 16:46:17.718: E/AndroidRuntime(814): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-27 16:46:17.718: E/AndroidRuntime(814): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-27 16:46:17.718: E/AndroidRuntime(814): at dalvik.system.NativeStart.main(Native Method)
05-27 16:46:17.718: E/AndroidRuntime(814): Caused by: java.lang.NullPointerException: storage == null
05-27 16:46:17.718: E/AndroidRuntime(814): at java.util.Arrays$ArrayList.<init>(Arrays.java:38)
05-27 16:46:17.718: E/AndroidRuntime(814): at java.util.Arrays.asList(Arrays.java:154)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128)
05-27 16:46:17.718: E/AndroidRuntime(814): at com.myapp.cloudchat.FriendsActivity.onActivityCreated(FriendsActivity.java:74)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.Fragment.performActivityCreated(Fragment.java:1703)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.BackStackRecord.run(BackStackRecord.java:682)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.Activity.performStart(Activity.java:5113)
05-27 16:46:17.718: E/AndroidRuntime(814): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
05-27 16:46:17.718: E/AndroidRuntime(814): ... 11 more
05-27 16:46:20.428: E/Trace(866): error opening trace file: No such file or directory (2)
推荐答案
当传递给ArrayAdapter(Context, int, T[])
的数组参数为null时,抛出此特定异常("storage == null"
). (更具体地说,当它尝试创建包裹在空数组中的新ArrayList
时,它是从Arrays.java中抛出的.)
This particular exception ("storage == null"
) is thrown when the array parameter passed to ArrayAdapter(Context, int, T[])
is null. (To be more specific, it's thrown from Arrays.java when it tries to create a new ArrayList
wrapped around your null array.)
变量values
本身应该没有问题,但是您绝对确定在将values
传递给ArrayAdapter
构造函数时,它是否不为null?在线条下方
There should be no problem with the variable values
itself, but are you absolutely sure that values
is not null at the point you're passing it into the ArrayAdapter
constructor? Just below the line
//Log.i("User Name",uname);
并在构造函数调用上方添加以下内容:
and just above the constructor call, add something like this:
Log.i("FriendsActivity", "values = <<" + values + ">>");
看看它是否真的应该是它.
and see if it really is what it's supposed to be.
这篇关于java.lang.RuntimeException:无法启动活动ComponentInfo:java.lang.NullPointerException:storage == null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!