Java Android:线程停止工作
它从通道读取图像并将其写入卡。卡片上的图像写得很完整,很好。唯一的问题是线程处于挂起状态,并且在循环之后不执行任何行Java Android:线程停止工作,java,android,Java,Android,它从通道读取图像并将其写入卡。卡片上的图像写得很完整,很好。唯一的问题是线程处于挂起状态,并且在循环之后不执行任何行 protected Bitmap doInBackground(String... arg0) { // TODO Auto-generated method stub' // Runtime.getRuntime().availableProcessors(); System.out.println("Inside doinback"+ Remote
protected Bitmap doInBackground(String... arg0) {
// TODO Auto-generated method stub'
// Runtime.getRuntime().availableProcessors();
System.out.println("Inside doinback"+ RemoteScreen.out.toString());
try {
RemoteScreen.out.write(210);
//Home.threadloop = false;
Bitmap bitmap = null;
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "a.png";
String imageInSD = baseDir + File.separator + fileName;
System.out.println(imageInSD);
if (is!= null) {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try {
// Log.i("IMSERVICE", "FILERECCC-1");
//ContextWrapper context = null;
fos = new FileOutputStream(imageInSD);
bos = new BufferedOutputStream(fos);
byte[] aByte = new byte[1024];
int bytesRead;
//thread stuck in this loop and does not move forward
while ( (bytesRead = is.read(aByte)) > 0 ) {
if (bytesRead == 1)
break;
bos.write(aByte, 0, bytesRead);
System.out.println("Loop"+aByte);
}
bos.close();
Log.i("IMSERVICE", "out of loop");
java.io.FileInputStream in = new FileInputStream(imageInSD);
bitmap = BitmapFactory.decodeStream(in);
bitmap = BitmapFactory.decodeFile(imageInSD);
Log.i("IMSERVICE", "saved");
if (bitmap != null)
System.out.println(bitmap.toString());
} catch (IOException ex) {
// Do exception handling
// Log.i("IMSERVICE", "exception ");
}
}
publishProgress(b);
b = null;
ch = 4646;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
日志跟踪显示以下错误
05-10 20:34:42.715: E/AndroidRuntime(1135): FATAL EXCEPTION: AsyncTask #3
05-10 20:34:42.715: E/AndroidRuntime(1135): java.lang.RuntimeException: An error occured while executing doInBackground()
05-10 20:34:42.715: E/AndroidRuntime(1135): at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
05-10 20:34:42.715: E/AndroidRuntime(1135): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.lang.Thread.run(Thread.java:856)
05-10 20:34:42.715: E/AndroidRuntime(1135): Caused by: java.lang.NullPointerException
05-10 20:34:42.715: E/AndroidRuntime(1135): at com.rms.remotedesktop1.screencahnge.doInBackground(screencahnge.java:43)
05-10 20:34:42.715: E/AndroidRuntime(1135): at com.rms.remotedesktop1.screencahnge.doInBackground(screencahnge.java:1)
05-10 20:34:42.715: E/AndroidRuntime(1135): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
根据logcat,代码在第43行崩溃,出现空指针异常,我无法判断哪一行是第43行。然而:
- 您是否已检查
是否返回非环境.getExternalStorageDirectory().getAbsolutePath()
?可能是因为没有外部存储目录,或者您没有了解它的权限null
- 同样值得一读的是开发者页面,其中指出您不应该写入该目录,而您似乎正在这样做
- 您是否已检查
是否返回非环境.getExternalStorageDirectory().getAbsolutePath()
?可能是因为没有外部存储目录,或者您没有了解它的权限null
- 同样值得一读的是开发者页面,其中指出您不应该写入该目录,而您似乎正在这样做
- 我自己解决了这个问题。由于代码中的逻辑错误,正在更改其值的静态变量出错。我自己解决了这个问题。由于代码中的逻辑错误,正在更改其值的静态变量出错。您有写入权限吗?现在发布整个stacktracecheck,这可能会被清除。你能澄清一下屏幕上哪一行是第43行吗?这就是崩溃发生的地方。RemoteScreen.out.write(210);第43行是否有写入权限?现在发布整个stacktracecheck,这可能会被清除。你能澄清一下屏幕上哪一行是第43行吗?这就是崩溃发生的地方。RemoteScreen.out.write(210);是第43行吗?它在RemoteScreen.out.write(210)中有问题,但我现在已经解决了onPollAlarm期间的错误问题:java.lang.IllegalStateException:解析统计数据的问题:java.io.FileNotFoundException:/proc/net/xt\u qtaguid/iface\u stat\u all:open失败:enoint(没有这样的文件或目录)在RemoteScreen.out.write(210)中没有问题但我现在已经解决了onPollAlarm期间出现的错误问题:java.lang.IllegalStateException:解析stats时出现的问题:java.io.FileNotFoundException:/proc/net/xt\u qtaguid/iface\u stat\u all:open失败:enoint(没有这样的文件或目录)