Android 即使在更正清单文件和数据连接后也会获得未知的异常

Android 即使在更正清单文件和数据连接后也会获得未知的异常,android,android-camera,Android,Android Camera,我正在尝试制作一个应用程序,按下一个按钮,从相机上获取一张照片,然后在SurfaceView上显示,然后通过internet将其发送到一个.php文件。我的代码在http连接java.net.UnknownHostException:sibot.bugs3.com中给出了一个错误 我的MainActivity.java文件如下 public class MainActivity extends Activity { Button btn; ImageView img; @

我正在尝试制作一个应用程序,按下一个按钮,从相机上获取一张照片,然后在SurfaceView上显示,然后通过internet将其发送到一个.php文件。我的代码在http连接java.net.UnknownHostException:sibot.bugs3.com中给出了一个错误

我的MainActivity.java文件如下

public class MainActivity extends Activity {
    Button btn;
    ImageView img;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn=(Button) findViewById(R.id.button1);
        img=(ImageView) findViewById(R.id.sv);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                CaptureImage(img);
            }
        });
    }

    private void CaptureImage( final ImageView iv_image) {

        int FrontCameraFound = getCameraID();
        if (FrontCameraFound != -1) {
            final Camera mCamera = Camera.open(FrontCameraFound);

            Parameters parameters = mCamera.getParameters();

            mCamera.setParameters(parameters);
            mCamera.startPreview();

            Camera.PictureCallback mCall = new Camera.PictureCallback() {
                @Override
                public void onPictureTaken(byte[] data, Camera camera) {
                    InputStream is;
                    Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);

                    // set bitmap tp image view just to check 
                    // if image capture proper, testing purpose
                    iv_image.setImageBitmap(bmp);

                    mCamera.stopPreview();
                    mCamera.release();
                  //  mCamera = null;
                  ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();                     
                    String bal;
                try{  ByteArrayOutputStream bao = new ByteArrayOutputStream();

                    bmp.compress(Bitmap.CompressFormat.JPEG, 90, bao);

                    byte [] ba = bao.toByteArray();

                    bal=Base64.encodeBytes(ba);
                     nameValuePairs.add(new BasicNameValuePair("image",bal));
                    }catch(Exception e){ Log.e("ERROR", "caught one "+ e.toString());}
                  try{

                      HttpClient httpclient = new DefaultHttpClient();

                      HttpPost httppost = new HttpPost("http://sibot.bugs3.com/pic.php");

                      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                      HttpResponse response = httpclient.execute(httppost);

                      HttpEntity entity = response.getEntity();

                      is = entity.getContent();

                      }catch(Exception e){

                      Log.e("log_tag", "Error in http connection "+e.toString());

                      }
                }
            };
            mCamera.takePicture(null, null, mCall);
        }
    }

    private int getCameraID() {
        Camera.CameraInfo cameraInfo = new Camera.CameraInfo();

        for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); camIdx++) {
            Camera.getCameraInfo(camIdx, cameraInfo);
            // for capture image from back camera
            // If want to capture from front 
            // then change it to CAMERA_FACING_FRONT
            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
                try {
                    return camIdx;
                } catch (RuntimeException e) {

                }
            }
        }
        return -1;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.img2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="9" />
     <uses-permission android:name="android.permission.CAMERA" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.INTERNET" />
        <uses-feature android:name="android.hardware.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.android.img2.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>`enter code here`
        <activity android:name="com.android.img2.Base64" />
    </application>
</manifest>
我的清单文件如下

public class MainActivity extends Activity {
    Button btn;
    ImageView img;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn=(Button) findViewById(R.id.button1);
        img=(ImageView) findViewById(R.id.sv);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                CaptureImage(img);
            }
        });
    }

    private void CaptureImage( final ImageView iv_image) {

        int FrontCameraFound = getCameraID();
        if (FrontCameraFound != -1) {
            final Camera mCamera = Camera.open(FrontCameraFound);

            Parameters parameters = mCamera.getParameters();

            mCamera.setParameters(parameters);
            mCamera.startPreview();

            Camera.PictureCallback mCall = new Camera.PictureCallback() {
                @Override
                public void onPictureTaken(byte[] data, Camera camera) {
                    InputStream is;
                    Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);

                    // set bitmap tp image view just to check 
                    // if image capture proper, testing purpose
                    iv_image.setImageBitmap(bmp);

                    mCamera.stopPreview();
                    mCamera.release();
                  //  mCamera = null;
                  ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();                     
                    String bal;
                try{  ByteArrayOutputStream bao = new ByteArrayOutputStream();

                    bmp.compress(Bitmap.CompressFormat.JPEG, 90, bao);

                    byte [] ba = bao.toByteArray();

                    bal=Base64.encodeBytes(ba);
                     nameValuePairs.add(new BasicNameValuePair("image",bal));
                    }catch(Exception e){ Log.e("ERROR", "caught one "+ e.toString());}
                  try{

                      HttpClient httpclient = new DefaultHttpClient();

                      HttpPost httppost = new HttpPost("http://sibot.bugs3.com/pic.php");

                      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                      HttpResponse response = httpclient.execute(httppost);

                      HttpEntity entity = response.getEntity();

                      is = entity.getContent();

                      }catch(Exception e){

                      Log.e("log_tag", "Error in http connection "+e.toString());

                      }
                }
            };
            mCamera.takePicture(null, null, mCall);
        }
    }

    private int getCameraID() {
        Camera.CameraInfo cameraInfo = new Camera.CameraInfo();

        for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); camIdx++) {
            Camera.getCameraInfo(camIdx, cameraInfo);
            // for capture image from back camera
            // If want to capture from front 
            // then change it to CAMERA_FACING_FRONT
            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
                try {
                    return camIdx;
                } catch (RuntimeException e) {

                }
            }
        }
        return -1;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.img2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="9" />
     <uses-permission android:name="android.permission.CAMERA" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.INTERNET" />
        <uses-feature android:name="android.hardware.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.android.img2.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>`enter code here`
        <activity android:name="com.android.img2.Base64" />
    </application>
</manifest>

即使包括了所有的权限,并确保我手机上的网络是打开的,我还是无法解决这个问题。任何帮助都将不胜感激。

您可能希望在文本中更明确地回答您的确切问题。您提供的信息很好,但可能不完全清楚您在问什么;我得到了java.net.UnknownHostException:sibot.bugs3.com错误在添加了标记并在Logcat中看到后,我据此得出结论,错误出现在HttpResponse response response=httpclient.executehttpoppost;当我打开.php页面并发送da pic agen时,我发现该服务暂时不可用,服务器关闭了连接,没有发送任何数据。由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。由于服务器负载过重,可能会暂时阻止从获取异常多页面的位置进行连接。给您带来的不便,我们深表歉意