2016-09-08 14 views
0

許可例外でVuforiaの初期化に失敗した許可例外vuforiaのSDK +アンドロイドは、Appを使用してプログラムを実行した後にクラッシュ

Androidのバージョンで Vuforiaの初期化に失敗したデバイス4.1の<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />

テストです。 1(アビレベル16)にフロントカメラのみを搭載しています。マニフェストファイルに含ま

権限:SampleApplicationSessionInitVuforiaTaskタスクで

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.INERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-feature android:glEsVersion="0x00020000" /> 

例外、返さVuforia.init()の値が-1です。

私が逃したものはわかりません。

ライブラリは、私は同じ問題に直面している、jpct_ae、Vuforia

+0

アンドロイドでARアプリケーションを作成する際に同じエラーが発生しました。実際にアンドロイドプラグインを作成してアンドロイドマニフェストファイルを変更し、作成したマニフェストファイルをオリジナルとマージしてカメラ使用の許可を忘れてしまいました。紛争を起こしたことを明示し、カメラの許可を追加して私の問題を解決します。 「アンドロイドスタジオのアンドロイドモニターを使ってこの問題を知りました。 –

答えて

1

armae​​bi-v7a/libVuforia.so、アンドロイド支援-V4も含まれています。コンパイルしたバージョンでは、新しいバージョンでは、ユーザーが明示的にカメラ権限を与えなければならないため、この例はコンパイルされたSDKバージョン22に付属しています。私のプロジェクトは、私のAndroidアプリケーションにいくつかのコードを追加することで、API 25を使って作業しています。私の場合、私は、ユーザーがFloatingActionButtonをCLIC vuforia活動を開く前に、カメラの許可を求め:

FloatingActionButton flb=(FloatingActionButton)findViewById(R.id.floatingActionButton2); 
    flb.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 


      if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 

       ActivityCompat.requestPermissions(MainActivity.this, new String[] { Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0); 
      } 
      else 
      { 
       Intent myIntent = new Intent(MainActivity.this, VideoPlayback.class); 
       startActivity(myIntent); 
      } 

     } 
    }); 

VideoPlaybackがvuforiaは、事前の例に含まれてからARを使う活動です。この場合、ユーザーの回答を確認する必要があるため、onRequestPermissionsResultをリッスンする必要があります。 onRequestPermissionsResultで

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    // Begin monitoring for Aruba Beacon-based Campaign events 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

    if (requestCode == 0) { 
     if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED 
       && grantResults[1] == PackageManager.PERMISSION_GRANTED) { 
      Intent myIntent = new Intent(MainActivity.this, VideoPlayback.class); 
      startActivity(myIntent); 
     } 
    } 


} 

答えが肯定的だった場合、私たちはチェックANそうならば、私たちは活動を開きます。

私はそれもあなたのために働くことを願っています。

関連する問題