Sergey
- Forum posts: 1
May 30, 2013, 7:57:38 PM via Website
May 30, 2013 7:57:38 PM via Website
Hi, all please help me. I have next error in my device Android 2.3.4 (on emulator it is not present):
I/ActivityManager( 245): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.diploma.photoshare/.MainActivity } from pid 19081
I/ActivityManager( 245): Start proc com.diploma.photoshare for activity com.diploma.photoshare/.MainActivity: pid=21877 uid=10122 gids={1006, 1015, 3003}
I/ActivityManager( 245): Displayed com.diploma.photoshare/.MainActivity: +681ms
I/Information(21877): Start send photo
I/dalvikvm(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:256)
I/dalvikvm(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:1)
E/AndroidRuntime(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:256)
E/AndroidRuntime(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:1)
W/ActivityManager( 245): Force finishing activity com.diploma.photoshare/.MainActivity
I/ActivityManager( 245): Process com.diploma.photoshare (pid 21877) has died.
But this error is not always throws, sometimes application run normal.
this code my activity:
package com.diploma.photoshare;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import my.course.base64.Base64Convert;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends Activity implements SurfaceHolder.Callback,
View.OnClickListener, Camera.PictureCallback, Camera.PreviewCallback,
Camera.AutoFocusCallback {
private Camera camera;
private SurfaceHolder surfaceHolder;
private SurfaceView preview;
private Button shotBtn;
private Button closeBtn;
private static Log LOG;
private String pathToSave;
private String namePhoto;
private long filename;
public final static String PATH_TO_SAVE = "pathToSave";
public final static String FILE_NAME = "fileName";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
preview = (SurfaceView) findViewById(R.id.SurfaceView01);
surfaceHolder = preview.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
shotBtn = (Button) findViewById(R.id.Button01);
shotBtn.setText("Shot");
shotBtn.setOnClickListener(this);
closeBtn = (Button) findViewById(R.id.Button02);
closeBtn.setText("Close");
closeBtn.setOnClickListener(this);
}
@Override
protected void onResume() {
super.onResume();
camera = Camera.open();
}
@Override
protected void onPause() {
super.onPause();
if (camera != null) {
camera.setPreviewCallback(null);
camera.stopPreview();
camera.release();
camera = null;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
camera.setPreviewDisplay(holder);
camera.setPreviewCallback(this);
} catch (IOException e) {
e.printStackTrace();
}
Size previewSize = camera.getParameters().getPreviewSize();
float aspect = (float) previewSize.width / previewSize.height;
int previewSurfaceWidth = preview.getWidth();
int previewSurfaceHeight = preview.getHeight();
LayoutParams lp = preview.getLayoutParams();
if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) {
// портретный вид
camera.setDisplayOrientation(90);
lp.height = previewSurfaceHeight;
lp.width = (int) (previewSurfaceHeight / aspect);
;
} else {
camera.setDisplayOrientation(0);
lp.width = previewSurfaceWidth;
lp.height = (int) (previewSurfaceWidth / aspect);
}
preview.setLayoutParams(lp);
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void onClick(View v) {
if (v == shotBtn) {
camera.autoFocus(this);
}
if (v == closeBtn) {
moveTaskToBack(true);
}
}
@Override
public void onPictureTaken(byte[] paramArrayOfByte, Camera paramCamera) {
try {
File saveDir = new File("/sdcard/CameraExample/");
if (!saveDir.exists()) {
saveDir.mkdirs();
}
filename = System.currentTimeMillis();
pathToSave = String
.format("/sdcard/CameraExample/%d.jpg", filename);
FileOutputStream os = new FileOutputStream(pathToSave);
os.write(paramArrayOfByte);
os.close();
SendMediaToWebSite sendMediaToWebSite = new SendMediaToWebSite();
sendMediaToWebSite.execute();
} catch (Exception e) {
LOG.e("E", e.getStackTrace().toString());
}
paramCamera.startPreview();
}
@Override
public void onAutoFocus(boolean paramBoolean, Camera paramCamera) {
if (paramBoolean) {
paramCamera.takePicture(null, null, null, this);
}
}
@Override
public void onPreviewFrame(byte[] paramArrayOfByte, Camera paramCamera) {
}
class SendMediaToWebSite extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
@Override
protected Void doInBackground(String... params) {
String imgstr = Base64Convert.encodeToString(pathToSave);
namePhoto = String.valueOf(filename);
final String comment = "hard code comment";
LOG.i("Information", "Start send photo");
JSONObject js = new JSONObject();
try {
js.put("image", imgstr);// imgstr - my photo in base64 format
js.put("user", "user");
js.put("namePhoto", namePhoto + ".jpg");
js.put("comment", comment);
} catch (JSONException e) {
LOG.e("E", e.getStackTrace().toString());
}
StringEntity input = null;
try {
input = new StringEntity(js.toString());//Throwing error this!!!!!!!!!!!
} catch (UnsupportedEncodingException e) {
LOG.e("E", e.getStackTrace().toString());
}
js = null;
input.setContentType("application/json ");
LOG.i("Information", "Set input");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(
"my url");
postRequest.setEntity(input);
try {
httpClient.execute(postRequest);
} catch (ClientProtocolException e) {
LOG.e("E", e.getStackTrace().toString());
} catch (IOException e) {
LOG.e("E", e.getStackTrace().toString());
}
return null;
}
}
}
Regards, Sergey
I/ActivityManager( 245): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.diploma.photoshare/.MainActivity } from pid 19081
I/ActivityManager( 245): Start proc com.diploma.photoshare for activity com.diploma.photoshare/.MainActivity: pid=21877 uid=10122 gids={1006, 1015, 3003}
I/ActivityManager( 245): Displayed com.diploma.photoshare/.MainActivity: +681ms
I/Information(21877): Start send photo
I/dalvikvm(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:256)
I/dalvikvm(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:1)
E/AndroidRuntime(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:256)
E/AndroidRuntime(21877): at com.diploma.photoshare.MainActivity$SendMediaToWebSite.doInBackground(MainActivity.java:1)
W/ActivityManager( 245): Force finishing activity com.diploma.photoshare/.MainActivity
I/ActivityManager( 245): Process com.diploma.photoshare (pid 21877) has died.
But this error is not always throws, sometimes application run normal.
this code my activity:
package com.diploma.photoshare;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import my.course.base64.Base64Convert;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends Activity implements SurfaceHolder.Callback,
View.OnClickListener, Camera.PictureCallback, Camera.PreviewCallback,
Camera.AutoFocusCallback {
private Camera camera;
private SurfaceHolder surfaceHolder;
private SurfaceView preview;
private Button shotBtn;
private Button closeBtn;
private static Log LOG;
private String pathToSave;
private String namePhoto;
private long filename;
public final static String PATH_TO_SAVE = "pathToSave";
public final static String FILE_NAME = "fileName";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
preview = (SurfaceView) findViewById(R.id.SurfaceView01);
surfaceHolder = preview.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
shotBtn = (Button) findViewById(R.id.Button01);
shotBtn.setText("Shot");
shotBtn.setOnClickListener(this);
closeBtn = (Button) findViewById(R.id.Button02);
closeBtn.setText("Close");
closeBtn.setOnClickListener(this);
}
@Override
protected void onResume() {
super.onResume();
camera = Camera.open();
}
@Override
protected void onPause() {
super.onPause();
if (camera != null) {
camera.setPreviewCallback(null);
camera.stopPreview();
camera.release();
camera = null;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
camera.setPreviewDisplay(holder);
camera.setPreviewCallback(this);
} catch (IOException e) {
e.printStackTrace();
}
Size previewSize = camera.getParameters().getPreviewSize();
float aspect = (float) previewSize.width / previewSize.height;
int previewSurfaceWidth = preview.getWidth();
int previewSurfaceHeight = preview.getHeight();
LayoutParams lp = preview.getLayoutParams();
if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) {
// портретный вид
camera.setDisplayOrientation(90);
lp.height = previewSurfaceHeight;
lp.width = (int) (previewSurfaceHeight / aspect);
;
} else {
camera.setDisplayOrientation(0);
lp.width = previewSurfaceWidth;
lp.height = (int) (previewSurfaceWidth / aspect);
}
preview.setLayoutParams(lp);
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void onClick(View v) {
if (v == shotBtn) {
camera.autoFocus(this);
}
if (v == closeBtn) {
moveTaskToBack(true);
}
}
@Override
public void onPictureTaken(byte[] paramArrayOfByte, Camera paramCamera) {
try {
File saveDir = new File("/sdcard/CameraExample/");
if (!saveDir.exists()) {
saveDir.mkdirs();
}
filename = System.currentTimeMillis();
pathToSave = String
.format("/sdcard/CameraExample/%d.jpg", filename);
FileOutputStream os = new FileOutputStream(pathToSave);
os.write(paramArrayOfByte);
os.close();
SendMediaToWebSite sendMediaToWebSite = new SendMediaToWebSite();
sendMediaToWebSite.execute();
} catch (Exception e) {
LOG.e("E", e.getStackTrace().toString());
}
paramCamera.startPreview();
}
@Override
public void onAutoFocus(boolean paramBoolean, Camera paramCamera) {
if (paramBoolean) {
paramCamera.takePicture(null, null, null, this);
}
}
@Override
public void onPreviewFrame(byte[] paramArrayOfByte, Camera paramCamera) {
}
class SendMediaToWebSite extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
@Override
protected Void doInBackground(String... params) {
String imgstr = Base64Convert.encodeToString(pathToSave);
namePhoto = String.valueOf(filename);
final String comment = "hard code comment";
LOG.i("Information", "Start send photo");
JSONObject js = new JSONObject();
try {
js.put("image", imgstr);// imgstr - my photo in base64 format
js.put("user", "user");
js.put("namePhoto", namePhoto + ".jpg");
js.put("comment", comment);
} catch (JSONException e) {
LOG.e("E", e.getStackTrace().toString());
}
StringEntity input = null;
try {
input = new StringEntity(js.toString());//Throwing error this!!!!!!!!!!!
} catch (UnsupportedEncodingException e) {
LOG.e("E", e.getStackTrace().toString());
}
js = null;
input.setContentType("application/json ");
LOG.i("Information", "Set input");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(
"my url");
postRequest.setEntity(input);
try {
httpClient.execute(postRequest);
} catch (ClientProtocolException e) {
LOG.e("E", e.getStackTrace().toString());
} catch (IOException e) {
LOG.e("E", e.getStackTrace().toString());
}
return null;
}
}
}
Regards, Sergey
Recommended editorial content
With your consent, external content is loaded here.
By clicking on the button above, you agree that external content may be displayed to you. Personal data may be transmitted to third-party providers in the process. You can find more information about this in our Privacy Policy.