2016-04-04 22 views
3

を仕事にAndroidのドキュメントからカメラコードを取得できませんデバイス。しかし、何らかの理由でコードを実行しようとすると、data.getExtras()でnullポインタ例外が発生します。部。は<a href="http://developer.android.com/training/camera/photobasics.html" rel="nofollow">http://developer.android.com/training/camera/photobasics.html</a></p> <p>コードから私は、コードを使用しています

私はここで何が欠けていますか?

+0

このマニフェストに必要なすべてのアクセス許可が宣言されていることを願います。

+0

私はこれらを含めていますが、 yes –

+0

'data.getExtras()'でブレークポイントを使用すると何が与えられますか? – Youngjae

答えて

0

これは、Android開発の経験の1つです。

Androidインテントは、data.getExtras()にキャプチャされた画像を提供することを保証しません。特に、サードパーティのカメラ/画像アプリケーションを利用するユーザーは特にそうです。 hereに多くの試練や提案があり、どこでも "android camera intent null"でグーグルで検索されます。

いくつかの共通点は以下のとおりです。 EXTRA_OUTPUT事前定義されたパスの

  1. data.getExtras().get("data");
  2. 異なる鍵(すなわち、 "写真")とdata.getExtras()
  3. data.getData()
  4. Uri.fromFile(f)
  5. Uri.fromFile(f)ランダムファイル名(datetime形式またはIMG-xxx)なしEXTRA_OUTPUTの定義なし。

私は、あなたが意図した変数のどのルートをブレークポイントで使用するかを見つけることをお勧めします。 if-else if-elseの方法ですべてをチェックするとよいでしょう。

さらに、アプリを公開した後、慎重にクラッシュレポートをチェックしてください。上記の試行からエラーが出る可能性があります。

+0

?ランダム/不一致を暗示していますか? –

+0

@SeanHill //私が言うことは_random_は、(第三者のカメラアプリ)が予期せず定義したファイル名を意味する。 – Youngjae

+0

私はちょうど既定のカメラを使用しようとしています –

0

ThumbNailを取得するには、ファイルなどを作成する必要はありません。以下のコードを試してください。

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      // Ensure that there's a camera activity to handle the intent 
      if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
       } 

そして結果を得る。

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

      if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
       Bundle extras = data.getExtras(); 
       Bitmap imageBitmap = (Bitmap) extras.get("data"); 
       imgView.setImageBitmap(imageBitmap); 
      } 

    } 

imgViewは、ThumbNailを設定するImageViewです。

[サムネイルには必要ない]ファイルを作成して試してみたい場合は、ストレージに読み書きしようとする際に、マニフェストに次の権限を追加してみてください。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

すべて最高です。

+0

私はすでに権限を持っています。私は、コードのより単純なバージョンを使用してサムネイルを取得することができますが、サムネイルとファイルコードで完全な画像ではありません –

関連する問題

 関連する問題