Android应用程序不能在另一台笔记本电脑上工作

问题描述:

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

这可能是什么原因造成的?

这是我现在得到的错误:

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

检查您的logcat - 最有可能的是,您无权访问远程数据库。 – 323go 2013-03-21 23:08:56

+0

我认为您正在使用Eclipse进行开发。看看LogCat - 听起来你的笔记本电脑与SQL数据库的连接有问题,所以很可能你会看到LogCat中抛出的异常。 – Darwind 2013-03-21 23:09:07

+0

logcat中没有错误,连接参数都没有问题。在我的笔记本电脑上,相同的连接参数和代码如何工作完美无瑕? 〜它在不同的笔记本电脑上访问相同的分贝。而我的远程数据库是通过PHP API访问的Android设备访问。它可以是一个错误与PHP? – 2013-03-21 23:12:35

你传递一个null参数在showAtLocation()方法。如果您查看documentation for showAtLocation(View, int, int, int),则说它在View上调用getWindowToken()。由于您的情况为null,因此您将获得NullPointerException。您需要确保lvBooks已设置为实际的View

+0

最佳答案!有效 – 2013-03-22 21:09:02