как получить каталог приложения в Android-нуге getFilesDir не работает должным образом - PullRequest
0 голосов
/ 26 мая 2018

Мне нужно получить путь к библиотеке, установленной с приложением в Android.Следующий код работает довольно хорошо в Android Lolipop.но в нуге он возвращает следующий путь: "/data/user/0/com.package_name", хотя фактический путь, в котором существует такой файл: "/data/app/com.package_name-1/lib/arm64/lib_name.so».Lolipop предоставляет этот путь: "/data/data/com.package_name"

static File getLibDirectory(Context context)
{
    File dataDir = new File(context.getFilesDir().getParent()); //returns "/data/user/0/com.package_name"

    Log.d(TAG, "dataDir: "+dataDir.getAbsolutePath() + " Existance: "+ dataDir.exists());   //exists
    boolean isExsist = false;

    if(new File(dataDir.getAbsolutePath(), "lib").exists())
        isExsist=true;
    Log.d(TAG, "libDir: "+new File(dataDir.getAbsolutePath(), "lib").getAbsolutePath() + " Existance: "+ isExsist);  //dose not exists

    return new File(dataDir.getAbsolutePath(), "lib");
}

1 Ответ

0 голосов
/ 26 мая 2018

но в нуге он возвращает следующий путь: "/data/user/0/com.package_name"

Это совершенно правильное значение.

хотя фактический путь, по которому существует такой файл: «/data/app/com.package_name-1/lib/arm64/lib_name.so».

Я не знаю ни одной среды Android, в которой был бы такой путь, хотя я не могу исключить это./data/data/com.package_name-1/lib/arm64/lib_name.so будет возможно.

Точный путь зависит от устройства, ОС и того, какой пользователь (среди пользователей устройства) использует ваше приложение.ОС будет отображать вещи соответствующим образом, поэтому getFilesDir() возвращает правильное значение при любых обстоятельствах.

...