2016-06-30 33 views
0

私は、System.loadLibrary( "フルファイルパス")を使用して共有オブジェクトをロードするAndroidアプリケーションを持っています。UnsatisfiedLinkError:操作が許可されていません。Android 6.0の問題

フル・エラーは、次のとおりです:

java.lang.UnsatisfiedLinkError: dlopen failed: couldn't map "<Shared Object Path>" segment 2: Operation not permitted。私はしかし、API 19

を使用していたまで、これは私が同じアプリケーションが共有オブジェクトをロードすることができないAPI 23に自分のデバイスを更新しているので、細かい仕事をしていました

私はAndroidスタジオを使用しています。 NDK-11共有オブジェクト

+0

、ユーザーをアプリケーションのインストール時ではなく、アプリケーションの実行中にアプリケーションに許可を与えます。 対象のsdkが23の場合は、実行時にアクセス権を要求するとそれを修正するかどうかを確認する必要があります。 – Vucko

+0

実行時アクセス許可を与えても、共有オブジェクトを読み込めません。私は通常のファイル(txtなど)を読み書きすることができますが、読み込み中は問題があります。私が見つけた回避策は、ローカルのアプリケーションディレクトリにSOをコピーし、そこからロードすることです。 – Neuron

答えて

0

チェックのAndroid 6.xのデバイスの場合、この一時ソリューション構築のために:

build.gradleのAndroid 6.0(APIレベル23)で始まり

android 
     { 

      //23 or higher 
      compileSdkVersion 23 
      buildToolsVersion "23.0.3" 


defaultConfig 
        { 
         ... 
         //important code, write API 22 
         targetSdkVersion 22 
         ... 
        } 

... 
} 
+0

既にこれを試して、私のために働いていない。 – Neuron

+0

@Neuron私はとても残念です...それは私のためにうまくいくのです... – Aspicas

+0

これは、(ダイナミックパーミッションの問題を避けるために)助けになりましたが、ロードする前に共有オブジェクトをローカルアプリケーションディレクトリにコピーする必要があります。 – Neuron

関連する問題