kLatexFormula提示找不到库libpoppler.so.18的解决

by admin on 2019年11月1日

  一台客户端发现无法进入域用户,于是登入了本地管理员退域

今天去客户给机器做备机,带着装好SharePoint07的机器跑过去了,先做个LAN,然后连上机器开始工作;首先当然是改ip地址,然后都改好了开始加域,加了好几次,发现都不行,提示”指定的网络名不可用”,这下郁闷了,只有加到域里面,才能继续下面的工作》。。

kLatexFormula是偶然发现的很好用的公式编辑器,可以直接把latex语句输出成图片。但是安装上之后,运行却提示

问题情况:

我是先将数据库保存在assets目录下,在运行时拷贝在手机数据库目录中一份,最后在使用的。

于是代码简单到只有三步:

3.0的afnetowrking使用AFHttpSessionManager代替

  重新加域时发现无法加入,检查发现是可以ping通的,输入域、添加之后也会提示输入账号密码验证加域,输完密码之后提示“找不到网络名”,DNS指向正确

然后开始排错

/usr/bin/latex: error while loading shared libraries: libpoppler.so.18:
cannot open shared object file: No such file or directory

1、拷贝数据库在assets里

Podfile中要改版本为
platform :ios,’8.0′
pod ‘AFNetworking’, ‘~>2.6.3’
不然安装的是最新版的

  最后尝试了重启域控服务器,之后成功加域。

首先意识到网络问题,因为自己是网络出身,先是ping
DNS和域控的ip[一台机器],好吧,都通

网上查阅知rebuild似乎可以解决,但是速度无疑太慢。但是使用命令搜索:

2、拷贝数据库到手机数据库目录中

”’

FiledatabasePath = getDatabasePath(“a05cs.db”);

if(databasePath.exists()) {

databasePath.delete();

}

try{

FileOutputStream fos =newFileOutputStream(databasePath);

InputStream in = getAssets().open(“allarea.db”);

getResources().getAssets();

byte[] b =new byte[1024*8];

intl =0;

while((l = in.read(b)) != -1) {

fos.write(b,0,l);

}

fos.close();

in.close();

}catch(IOException e) {

e.printStackTrace();

}

”’

然后ping 他们的主机名,也都通,怪了!

$ ls /usr/lib/ | grep libpoppler

3、打开使用数据库

”’

sqLiteDatabase=
SQLiteDatabase.openDatabase(databasePath.getAbsolutePath(),
null,SQLiteDatabase.OPEN_READONLY);

if(sqLiteDatabase.isReadOnly()) {//成功打开了库,但就是找不到表

Cursor cursor =sqLiteDatabase.rawQuery(” select * from DOMAIN_PROVINCE
“, null);

intcount = cursor.getCount();

Log.i(“Li_ke”,”MainActivity:onCreate: “+ count);

}

”’

然后呢,想看看Host文件,其实我觉得不是这里的问题,因为能ping通域控,但是还是添加了Host文件,依然加域失败,同样的错误

得到显示已经有了libpoppler.so.19库,这个更新。所以通过建立19到18链接来暂时避免:

出现的问题

在使用的时候报错:Cursor cursor =sqLiteDatabase.rawQuery(” select *
from DOMAIN_PROVINCE “, null);提示找不到表。

在想问题应该还是网络、或者DNS,好吧,登录到DNS上,添加DNS解析,依然不行

$ sudo ln -s /usr/lib/libpoppler.so.19.0.0 /usr/lib/libpoppler.so.18

问题解决

那时因为Android Device
Monitor打不开data文件,也就看不到拷贝好的内容。于是就很奇怪。试过添加读写权限(失败)、修改拷贝路径(失败)、直接使用assets目录”file:///android_asset/allarea.db”(找不到文件,然而mBinding.webView.loadUrl(“file:///android_asset/test.html”);却是可用的)。

真正的错误原因是:没有找到assets目录下的*.db文件。

至于为什么没有拿到。我也不知道。

我是先吧getAssets();改成了getResources().getAssets();没拿到

我又在assets下加了一个文件,那个文件拿到了,db文件还没拿到

我又吧db文件改个名字A.db。这次拿到了。

我的天,我肯定没写错名字,shift+F6,代码中使用的名字也跟着改的,然而却拿到了。我又改回了名字,还是拿到了。我嘞个去。
神奇。

没办法了,重启机器,希望出现奇迹,当然,奇迹没有出现,其间也百度了一下,有说重启域控的[哥,我们的网站在运行,重启域控是会死人的!],有的说在预控服务器上安装补丁:WindowsServer2003-KB958644-x86-CHS.exe,这个没敢试。好吧,半个小时也没有搞定,求助系统工程师,高手就是在处于绝境的时候来救场的!

问题解决。

经验

1、遇到错误,要先锁定错误的具体位置。真正位置。(断点)

2、assets目录下可能会出现名字错误的情况,而导致未知BUG,此时重命名就好。

看看域控的服务开启没有

图片 1

workstation

server

有没有开启,在域控上开启两个服务,加域成功!好吧,很激动,很兴奋!可以继续工作了。

ps:一个简单的问题,记录下来,希望在某些时候能够帮上大家,好了,就到这里,休息。。休息一下。。

 

作者:霖雨
出处:
本文版权归 霖雨和博客园共有,欢迎转载,但请注明出处。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图