inDL(x,as.logical(local),as.logical(now),...)中的错误:无法加载共享对象

时间:2018-09-03 13:12:10

标签: r dll unc tidyselect

尝试附加程序包 @Override public void onResponse(JSONArray response) { for (int i = 0; i < response.length(); i++) { try { JSONObject jsonObject = response.getJSONObject(i); switch (div) { case "ctg": if (i == pos) { name = jsonObject.getString("name"); fac_and_sub = jsonObject.getString("faculty_and_sub"); tution_fees = jsonObject.getString("tution_fees"); admission_info = jsonObject.getString("admission_info"); contact = jsonObject.getString("contact"); if(mSectionsPagerAdapter.facultyAndSubject != null) { mSectionsPagerAdapter.facultyAndSubject. updateDate(name, fac, fees, info, contact) } else { mSectionsPagerAdapter.facultyAndSubject = new FacultyAndSubject(); Bundle bundle = new Bundle(); bundle.putString("name", name); bundle.putString("fac", fac_and_sub); bundle.putString("fees", tution_fees); bundle.putString("info", admission_info); bundle.putString("contact", contact); facultyAndSubject.setArguments(bundle); } } break; } } catch (JSONException e) { e.printStackTrace(); } } } } 并尝试调用tidyselect时遇到此错误。

该错误发生在tidyselect::any_function或类似的命令行中,在Rstudio中,我键入:RStudio就会立即触发该错误,尽管tidyselect::可以正常工作并且我可以调用?tidyselect::的帮助。

这也有效:

?tidyselect::any_function

它曾经可以工作,但我不知道更改了什么,我只知道已经安装了软件包packageVersion("tidyselect") # [1] ‘0.2.4 ,管理员可能也进行了更改。

第一个弹出窗口说:

  

过程入口点R_ContinueUnwind不在动态链接库R.dll中

然后在控制台中显示错误:

  

inDL(x,as.logical(local),as.logical(now),...)中的错误:

     

无法加载共享对象'//edited_UNC_path.com/edited_pa​​th/tidyselect/libs/x64/tidyselect.dll':

     

LoadLibrary失败:找不到指定的过程。

rjava文件存在:

dll

config:

file.exists('//edited_UNC_path.com/edited_path/tidyselect/libs/x64/tidyselect.dll') # [1] TRUE

有什么办法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

我不知道为什么会发生此事件,因为我目前正面临着同样的问题。无论如何,我可以解释您的解决方案。

32位和64位

您的系统为64位,如sessionInfo()所示。 i386体系结构适用于32位旧系统(它们使用32位内存地址时只能处理数量有限的内存,而64位系统实际上几乎是无限的)。

R中发生了什么

R中的经典安装是针对多体系结构的“ multiarch”,这意味着32位和64位。在64位系统中,构建32位软件没有问题。但是,您可能没有为两种体系结构都安装所有依赖项(例如C ++库)。您的32位安装显然存在问题。然后,使用INSTALL_opts="--no-multiarch"安装软件包只会安装64位版本(您需要的版本),而不会出现问题。

答案 1 :(得分:0)

此问题通过使用来重新安装tidyselect来解决:

install.packages("tidyselect",INSTALL_opts="--no-multiarch")

(尽管该软件包可以与install.packages("tidyselect")一起安装而没有错误。

This answer向我指出了解决方案(尽管完全不同的问题)。

似乎rjava确实存在问题。

引用链接的答案:

  

解决方案是使用仅忽略i386体系结构的安装选项。 (也适用于非CRAN的drat库和软件包

尽管这对我来说都是中文,?utils::install.packages却无济于事,我会很乐意赞成/接受一个可以解释当前情况的答案。