2016-06-25 16 views
0

現在、Androidスタジオで簡単なカメラアプリを作成する方法を学習しています。 「カメラ」ボタンをクリックすると、アプリがクラッシュします。私はアプリがクラッシュする原因を突き止めることはできません。 logcatでは、 'startActivityForResult'が原因である可能性がありますが、それは私には普通のようです。Android Studioのクラッシュ、OnClickとstartActivityForResultに関連する

カメラのボタンIDがJavaファイルと一致するようにしました。どんな助けでも大歓迎です!

ここまでは私のコードです。

Main_Activity.java:

public class MainActivity extends AppCompatActivity { 

Button cam_button; 
ImageView imageView; 
static final int CAMERA_REQUEST_CODE = 1; 


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


    cam_button = (Button) findViewById(R.id.cam_button); 
    imageView = (ImageView) findViewById(R.id.imageV); 

    cam_button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      File file = getFile(); 
      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE); 
     } 
    }); 

} 


private File getFile() { 
    File folder = new File("sdcard/camera_app"); 
    if(folder.exists()) 
     folder.mkdir(); 

    File imageFile = new File("cameraImage.jpg"); 

    return imageFile; 
} 


@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    String path = "sdcard/camera_app/cameraImage.jpg"; 
    imageView.setImageDrawable(Drawable.createFromPath(path)); 
}} 

activity_main.xml:

6月24日21:30:45.769 21481

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="camera" 
    android:id="@+id/cam_button" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageV" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

これは私がlogcatからコピーしたものです-21481/com.sugarcoder.cameraapp E/AndroidRuntime:致命的除外:メイン 処理: com.sugarcoder.cameraapp、PID:21481 java.lang.SecurityException:許可の否認:開始インテント{ act = android.media.action.IMAGE_CAPTURE flg = 0x3 cmp = com.motorola.camera/.Camera clip = {text// uri-list U:file:///cameraImage.jpg}(補足あり)} でProcessRecord {b5b85f2 21481:com.sugarcoder.cameraapp/u0a121}から(pid = 21481、uid = 10121) android.app.ActivityManagerProxy.startActivityでandroid.os.Parcel.readException(Parcel.java:1573) でandroid.os.Parcel.readException(Parcel.java:1620) で.permission.CAMERA(ActivityManagerNative.java :2696) でandroid.app.Activity.startActivityForResultでandroid.app.Instrumentation.execStartActivity(Instrumentation.java:1574) (Activity.java:3921) でandroid.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java :android.app.Activity.startActivityForResult(Activity.java:3881で48) でandroid.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) ) android.support.v4.appで.FragmentActivity.startActivityForResult(FragmentActivity.java:871) at com.sugarcoder .cameraapp.MainActivity $ 1.onClick android.view.View $ PerformClick.run(View.java:21163) でandroid.view.View.performClick(View.java:5201)で(MainActivity.java:40) でandroid.os.Handler.handleCallback(Handler.java:746)android.os.Handler.dispatchMessage(Handler.java:95)で android.os.Looper.loop(Looper.java:148)で アンドロイドで 。 app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728) a t com.android.internal.os.ZygoteInit.main(ZygoteInit。java:618)

+0

クラッシュログを投稿する – Kroderia

+0

私はlogcatで見たものを含めました。 – Sugarcoder

+0

marshmallow 6.0を使用していますか? –

答えて

0

解決済み!問題は、実際にアプリのアプリ情報を携帯電話に入れて許可を有効にしなければならないことがわかった。すべてのあなたの助けをありがとう、人々! :)

+0

私はこれを受け入れられた答えとしてマークすることができると思います。;) –

関連する問題