Java Android在将图像上载到web服务器时引发空点异常
我正在对单击的项目调用uploadFileJava Android在将图像上载到web服务器时引发空点异常,java,php,android,file-upload,Java,Php,Android,File Upload,我正在对单击的项目调用uploadFile gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { ImageItem item = (ImageItem)
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
ImageItem item = (ImageItem) parent.getAdapter().getItem(position);
Toast.makeText(MainActivity.this,item.getAddress(),
Toast.LENGTH_LONG).show();
uploadFile(item.getAddress());
}
});
PHP代码是
<?php
$file_path = "uploads/";
$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
?>
提前谢谢 因为这一行,你得到了一个
NPE
ProgressDialog dialog = null;
似乎您从未初始化对话框
,因此当您对其调用dismise()
时,它会抛出一个NPE
。在对其调用方法之前,需要对其进行初始化。我猜您可能想在UI线程的内部运行nuithread()
或其他地方
另外,我看不到您是如何在后台线程上运行任何代码的,因此不需要您拥有的runOnUiThread()
s。但是,您应该在后台线程上运行网络代码
我认为您缺少了一些日志猫。此代码与日志文件的例外情况没有关系。在我得到错误的地方大致是main activity
?dialog.disease()的第217行;它在挡块里面。你说得对。我删除了所有对话框,然后得到了android.os.NetworkOnMainThreadException,然后使用strictmode,您应该在后台线程上运行下载,请参见Asynctask
12-19 05:59:32.582: E/AndroidRuntime(1896): java.lang.NullPointerException
12-19 05:59:32.582: E/AndroidRuntime(1896): at com.javatechig.gridview.MainActivity.uploadFile(MainActivity.java:217)
12-19 05:59:32.582: E/AndroidRuntime(1896): at com.javatechig.gridview.MainActivity$1.onItemClick(MainActivity.java:51)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.widget.AdapterView.performItemClick(AdapterView.java:301)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.widget.AbsListView.performItemClick(AbsListView.java:1584)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3399)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.widget.AbsListView$1.run(AbsListView.java:4653)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.os.Handler.handleCallback(Handler.java:725)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.os.Handler.dispatchMessage(Handler.java:92)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.os.Looper.loop(Looper.java:175)
12-19 05:59:32.582: E/AndroidRuntime(1896): at android.app.ActivityThread.main(ActivityThread.java:5279)
12-19 05:59:32.582: E/AndroidRuntime(1896): at java.lang.reflect.Method.invokeNative(Native Method)
12-19 05:59:32.582: E/AndroidRuntime(1896): at java.lang.reflect.Method.invoke(Method.java:511)
12-19 05:59:32.582: E/AndroidRuntime(1896): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
12-19 05:59:32.582: E/AndroidRuntime(1896): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
12-19 05:59:32.582: E/AndroidRuntime(1896): at dalvik.system.NativeStart.main(Native Method)
ProgressDialog dialog = null;