android studio导入项目出现Gradle version 1.10 is required. Current version is 2.0的解决办法

1.首先在项目下找到gradlew.bat这个文件,单击运行。它会下载Gradle 1.10 。等待任务完成

2.在项目的报错的控制台中选择setting这个选项。然后设置本地的Gradle。我的是默认放在

C:\Users\joyme.gradle\wrapper\dists\gradle-1.10-all\bif7dlrky2i400uf9zsz2c0my\gradle-1.10

vitamio使用出现找不到文件的解决方法

首先我遇到这个问题肯定不是一般的找不到文件的错误。使用vitamio的VideoView的时候,出现一部分视频会找不到文件。

分析很久问题出现的原因,最后得出是因为这部分视频名都是URLEncode过的,可能是这个原因导致字符串在解析的过程中出现问题。然后跟踪代码到VideoView的setVideoPath处,发现他的实现如下

public void setVideoPath(String path) {
setVideoURI(Uri.parse(path));
}
很明显这里就是导致错误所在,所以解决办法就是将string 类型的path先编码一下

videoView.setVideoPath(URLEncoder.encode(path, “UTF-8”));

ubuntu eclipse mars.2Bug修复

ubuntu eclipse mars.2Bug的bug具体表现为图标异常,菜单无法正常点击切换等等,问题是因为GTK方面,将eclipse的启动方式eclipse.desktop改为一下代码

   [Desktop Entry]
   Name=eclipse
   Comment=develop java app
   Exec=env SWT_GTK3=0 /home/jiang/software/eclipse/eclipse
   Icon=/home/jiang/software/eclipse/icon.xpm
   Terminal=false
   Type=Application
   Categories=devtool

unable to make backup link of `./usr/bin/chattr’ before installing new version: Operation not permitted

在公司服务器上使用apt-get upgrade遇到这个问题。通过查阅资料,发现问题的关键在于,chattr需要升级但是chatter无法被删除。

使用:

lsattr /usr/bin/chattr

发现chattr的属性包括i和a,i代表immutable,不可更改,a代表append only,只能增加。这样问题就清楚了,chattr不可更改导致无法升级,至于出现这个情况的原因也不清楚。于是使用chattr更改自己的i和a属性

chattr -i /usr/bin/chattr
chattr -a /usr/bin/chattr

没有任何效果,而且提示我chattr的用法。出现这种提示的原因往往都是用错了指令,我反复确认指令都没有错。

于是在本地机器上验证chattr的属性,发现是没有i和a属性的,而且上述指令也可以正常工作。

实在没有办法,使用sftp将本地的chattr传到服务器上,命名为chattr_new,再用传上去的chattr_new更改chattr的属性

chattr_new -i /usr/bin/chattr
chattr_new -a /usr/bin/chattr

然后在执行apt-get upgrade,没有任何报错。

注:
chattr是用来防止误删操作的,即使是root用户,在chattr为文件添加了i属性后,root用户也无法删除。
lsattr则是用来查看文件的这方面的属性的。

Ubuntu下Docker安装遇到的问题记录

Ubuntu下安装docker的几点问题记录

1.要注意系统的内核和版本是否支持,内核最低要求为3.10,版本最低为12.04,这两点必须同时满足。
使用uname -a查看系统内核
Linux jiang-PC 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
这里4.4.0-72则是内核的版本号
使用cat /etc/issue查看系统版本号
Ubuntu 16.04 LTS \n \l

2.注意查看docker的日志记录
使用service docker start(或者systemctl docker start)启动docker时,没有任何输出提示,但是往后执行可能就发现docker没有正常启动,但是又不知道问题出在哪里。/var/log/upstart/docker.log记录了docker启动日志。

3.AppArmor的问题
AppArmor enabled on system but the docker-default profile could not be loaded。出现这个问题时,使用
apt-get install apparmor即可解决

附一段webserver的Dockerfile:

# 这是服务器环境的Docker,会安装好php,nginx等环境,并且进行配置
# author:jiangpengfei
# date: 2017-04-19

FROM ubuntu:16.04
RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common \
    && DEBIAN_FRONTEND=noninteractive apt-add-repository -y ppa:nginx/stable \
    && DEBIAN_FRONTEND=noninteractive apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y nginx
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y php7.0
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y php-redis
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y php-mysql
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y php-imagick \
    && apt-get autoremove \
    && apt-get autoclean
# 上面是从ubuntu的源中安装必要组件,下面开始进行配置
RUN mkdir /var/www/family \
    && mkdir -p /var/log/nginx/access/ \
    && touch /var/log/nginx/access/default.log

COPY family /etc/nginx/sites-enabled 
COPY start.sh /usr/local/bin
EXPOSE 9090 81
CMD ["start.sh"]