2016-06-30 52 views
0

我有一個使用System.loadLibrary(「完整文件路徑」)加載共享對象的Android應用程序。這是直到我用API 19UnsatisfiedLinkError:操作不允許Android 6.0中的問題

但是因爲我有我的設備更新到API 23相同的應用程序是無法加載共享對象做工精細:

完整的錯誤是:

java.lang.UnsatisfiedLinkError: dlopen failed: couldn't map "<Shared Object Path>" segment 2: Operation not permitted

我正在使用Android Studio。 NDK-11構建的共享對象

+0

Android中6.0開始(API級23),用戶在應用程序運行時嚮應用程序授予權限,而不是在安裝應用程序時授予權限。 如果你的目標sdk是23,你應該檢查在運行時請求權限是否修復它。 – Vucko

+0

即使在提供運行時權限後,我也無法加載共享對象。我能夠讀/寫普通文件(TXT等),但加載SO正在給出問題。我找到的解決方法是將SO複製到本地應用程序目錄並從那裏加載。 – Neuron

回答

0

檢查的Android 6.x的設備該溫度溶液:

的build.gradle

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