0

目前我正在开发android应用程序,但它一直在强制关闭。我将发布我所做的代码。testproject gui 只是一个简单的按钮。当我单击按钮时,它应该进入相机类。但是,它强制关闭。我自己运行相机,它可以工作。:/

测试项目类:

  package com.example.testproject;

  import android.os.Bundle;
  import android.app.Activity;
  import android.content.Intent;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;

  public class Testproject extends Activity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);

Button bc;

bc = (Button)findViewById(R.id.btncamera); 

bc.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        Intent intent = new Intent(Testproject.this, Camera.class);
        startActivity(intent);
    }
});

}

    }

相机类:

    package com.example.testproject;

    import java.io.IOException;

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageButton;
    import android.widget.ImageView;

    public class Camera extends Activity implements View.OnClickListener     {

ImageButton ib;
Button b;
ImageView iv;
Intent i;
final static int cameraResults = 0;
Bitmap bmp;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.camera);
    initialize();
}

public void initialize(){
    iv = (ImageView) findViewById (R.id.ivReturnedPic);
    ib = (ImageButton) findViewById (R.id.ibTakePic);
    b = (Button) findViewById (R.id.bSetWall);
    b.setOnClickListener(this);
    ib.setOnClickListener(this);

}

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

    switch (v.getId()){
    case R.id.bSetWall:
        try {
            getApplicationContext().setWallpaper(bmp);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         break;

    case R.id.ibTakePic:
        i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i,cameraResults);
        break;
    }

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK){
        Bundle extras = data.getExtras();
        bmp = (Bitmap)extras.get("data");
        iv.setImageBitmap(bmp);

    }
}

    }
4

2 回答 2

0

确保您在manifest.xml文件中拥有所有适当的权限。如果您使用相机,您将需要:

<uses-permission android:name="android.permission.CAMERA" />
于 2013-04-26T03:46:55.147 回答
0

确保您已将您的camera活动添加到manifest.xml.

于 2013-04-26T04:49:53.017 回答