Android App不能在不同的笔记本电脑上工作

时间:2013-03-21 23:06:43

标签: java php android sql eclipse

我正在开发一个Android应用程序。它在我的笔记本电脑上工作正常,但如果我在不同的笔记本电脑或Android设备上使用相同的源代码,它不会加载某些东西(例如链接到远程SQL数据库的列表)。它使用完全相同的代码和软件版本在我的笔记本电脑上正常加载。

可能的原因是什么?

这是我现在得到的错误:

03-21 23:42:20.174: W/dalvikvm(1037): threadid=1: thread exiting with uncaught exception (group=0x40014760)
03-21 23:42:20.183: E/AndroidRuntime(1037): FATAL EXCEPTION: main
03-21 23:42:20.183: E/AndroidRuntime(1037): java.lang.NullPointerException
03-21 23:42:20.183: E/AndroidRuntime(1037):     at android.widget.PopupWindow.showAtLocation(PopupWindow.java:791)
03-21 23:42:20.183: E/AndroidRuntime(1037):     at com.fokrul.justdeals.ActivityTab$2.onItemLongClick(ActivityTab.java:298)

我的第298行如下:

   lvBooks.setOnItemLongClickListener(new OnItemLongClickListener(){
                public boolean onItemLongClick(AdapterView<?> arg0, View view, final int position, long arg3) {
                    LayoutInflater inflater = (LayoutInflater)ActivityTab.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View viewInflated = inflater.inflate(R.layout.popupfile, null, false);
                    popup = new PopupWindow(viewInflated, Resizable.getDrawableWidth(getResources(), R.drawable.popup_menu), Resizable.getDrawableHeight(getResources(), R.drawable.popup_menu), true);

                    popup.setAnimationStyle(R.style.animation_popup);

                    View lvBooks = null;
    <THIS IS LINE 298>>>>> popup.showAtLocation(lvBooks, Gravity.NO_GRAVITY, view.getWidth()/2-Resizable.getDrawableWidth(getResources(), R.drawable.popup_menu)/2, view.getTop()+view.getHeight()/2);

                    setPopupListeners(viewInflated, position, bid);

                    return false;
                }
            });

1 个答案:

答案 0 :(得分:0)

您正在null方法中传递showAtLocation()参数。如果您查看documentation for showAtLocation(View, int, int, int),则会在getWindowToken()上调用View。由于您的null在您的情况下,您将获得NullPointerException。您需要确保lvBooks设置为实际View