跳到内容

文章类别:Android

CentOS编译小飞机R(粉色界面改颜色)

应小伙伴要求给小飞机R改个颜色,从来没搞过,撸起袖子干。

主机为Win10,使用自带的Hyper-V虚拟机,建立二带虚拟机据说性能好一些,关闭安全启动不然无法从ISO文件启动,虚拟机中最小安装,安装CentOS-7-x86_64-Minimal-1611,CentOS具体安装步骤不详细说明,因为我是最小安装,你们照我这篇来搞应该不会缺失什么库之类的,装完更新一下系统:

yum install epel-release -y
yum update -y
yum upgrade -y

安装jdk 1.8.0:

yum install java-1.8.0-openjdk.x86_64
yum install java-1.8.0-openjdk-devel.x86_64

配置java环境变量,在/etc/profile 尾部追加:

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

应用环境变量:

source /etc/profile

然后运行一下java和javac看看有输出不报错就可以了,自己新建一个目录,把小飞机R源码从github上拖下来:

git clone https://github.com/小飞机R/小飞机R-android.git

拖下来之后进到目录里面下载一下依赖库:

git submodule update --init

下载如果出错则虚拟机需要出墙,再把ssr客户端的源码拖下来:

git clone https://github.com/小飞机R/小飞机R.git

配置什么的不说了,见这里:

https://github.com/小飞机R/小飞机R/tree/manyuser

如果使用chacha20,报错提示“install python-setuptools”,还要安装libsodium:

yum install libsodium

完事还是不行,报错提示“ImportError: No module named cymysql”,还要安装cymysql:

pip install cymysql

完事还是不行,提示报错“pip: command not found”,还要安装pip:

easy_install pip

完事还是不行,提示报错“easy_install: command not found”,还要安装python-setuptools:

yum install python-setuptools

然后再把上边重复一遍就好了,如果还报错“Can’t connect to MySQL server on u’127.0.0.1′ (111)”,那是你用成数据库版了,进子目录运行单用户版。

这里需要从墙外获取文件,下载如果出错需要出墙, git自带了sock5代理功能,由于我是在虚拟机上建的CentOS,然后我再主机上有SSR,我在主机的SSR上打开本地代理,允许来自局域网的链接,直接给虚拟机使用就行了,不用在虚拟机中单独配置一个SSR,懒得配主机防火墙规则了,直接关闭Windows防火墙,反正下载完就不用了,再把防火墙打开:

git config --global http.proxy 'socks5://主机IP:1080'
git config --global https.proxy 'socks5://主机IP:1080'

顺道把CentOS的防火墙也关了:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

配置SBT 0.13:

curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
mv bintray-sbt-rpm.repo /etc/yum.repos.d/
yum install sbt

第一次运行sbt超慢,卡在“Getting org.scala-sbt sbt 0.13.13 …”,看日志其实后台在下载东西:

tail -f $HOME/.sbt/boot/update.log

关于这一段,我在网上看到解决方案的时候直接喷了:

This is quite old post and my answer may not be completely relevant. But here is my experience:

  1. I am using sbt 0.13.8
  2. Getting org.scala-sbt sbt 0.13.8 …
  3. I have got this line hanging for some time – between 5 to 10 minutes.
  4. And then it started to download stuff.

So my solution is that you have to wait a bit.

下面的回复也超搞笑:

Thanks! I was “waiting” while looking up the problem and reading this page. Now I checked the window again, and it’s downloading all the jars… sloooowwwlllyyyy 🙂

等了快半个钟终于有反应了……

然后下载android SDK 25,使用curl加代理:

curl -x sock5://主机IP:1080 -O https://dl.google.com/android/repository/tools_r25.2.3-linux.zip

然后配置sdk环境变量,在/etc/profile 尾部追加:

#set android environment
ANDROID_HOME=/root/android_home
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export ANDROID_HOME PATH

使之生效:

source /etc/profile

更新sdk:

android update sdk --no-ui

更新的同时不闲着,下载配置ndk和一些运行库:

yum install -y glibc.i686 zlib.i686 libstdc++.i686
curl -x sock5://主机IP:1080 -O https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip

然后配置ndk环境变量,在/etc/profile 尾部追加:

ANDROID_NDK_HOME=/root/android_home/android-ndk-r13b
export ANDROID_NDK_HOME

使之生效:

source /etc/profile

然后生成自己的key:

keytool -genkey -v -keystore xxxx.jks -keyalg RSA -keysize 2048 -validity 10000 -alias xxxx

剩下的根据github上的说明进行操作,前面有些设置环境变量或者文件位置目录的,你们根据自己的进行设置。

git submodule update –init

# Build native binaries
./build.sh

# Build the apk
sbt clean android:package-release

【尼玛,我博客不会因为这篇给墙了吧】

配置Genymontion虚拟机,VirtualBox和Hyper-V共存

官方SDK里面的AVD虚拟机效率不行,运行起来太慢,网上看到Genymontion模拟器貌似不错。

是可以免费使用的,点击Buy,拉到最下面小字免费下载(点此直接到达)。

然后趁下载的空注册个账号,不注册不能配置虚拟机(点此直接到达)。

20160122121440 微信截图_20160122122103

安装好点ADD添加虚拟机,选完型号之后需要下载一些文件,大概一二百兆,这个时候如果不出意外会报下图的错,这是中国网络的问题,不能说得太细,在下图配置一下就好了,请自行解决,然后就可以正常下载了。

报错内容:

Unable to create virtual device.

Server returned HTTP status code 0

20160122122910 20160122123626 20160122123025

建好虚拟机先运行一下看看,报错了,可以看出用的是VirtualBox,让我到VB里面去运行一下。打开VB,点启动,看下错误,提示VT-x不可用,这时候需要大家确认一下CPU是否支持VT,以及是否在主板中打开了VT支持。如果确定CPU是支持的,也在BIOS中打开了VT选项,依然这样提示,这时就要看一下系统中是不是启用了Hyper-V。Hyper-V是微软的一种虚拟机服务,会独占VT-x,这样VB就用不了了。 阅读更多 »

minSdkVersion、maxSdkVersion、targetSdkVersion、target的区别

20160112204936在AndroidManifest.xml中:

minSdkVersion:

即在建立项目时的MiniMum Required SDK,系统API低于该属性声明的API等级,则应用不能安装。因为高API等级的系统可以运行低API等级的应用,反之却不行,所以此属性的值应该是应用中所使用的所有API接口中的最高等级。

20160112205650maxSdkVersion:

高于该属性声明的API等级,则应用不能安装,一般不设置。

targetSdkVersion:

即在建立项目时的Target SDK,告知系统此应用是以该属性声明的API等级为目标编译的,系统可以不进行兼容性检查。该属性只起到告知的作用,实际的兼容性问题需要开发者自己处理。

20160112204951在project.properties中:

target:

即在建立项目时的Compile With,该应用在编译时实际使用的API等级。如果使用了高于该等级的API接口,编译的时候就会报错。

最后官方解释在这里:

http://developer.android.com/intl/zh-cn/guide/topics/manifest/uses-sdk-element.html

Eclipse不显示Console

真是太小白了,瞎整整的Console都没了,上网找了一下,记在这里。

三个方法:

1,手动打开Console窗口:

Windows > Show View > Console 或者快捷键 Alt+Shift+Q,右下弹出提示后按C,如图:

423452345 20160112172846

2,设置 Console显示的时间:

Windows > Preference > Run/Debug > Console,勾选两个Show,如果已经勾选了,就去掉在勾上,如图:

20160112172027 20160112172012

3,切换到要查看的Console:

如果已经显示Console窗口了,但是没有期望的内容,可能是切换的窗口不对,点击Console窗口右边的控件切换,如图:

20160112172055

发现了以元素 ‘d:skin’ 开头的无效内容。此处不应含有子元素。

20160110125641Eclipse+ADT的开发平台在建了Android 5.1(API 22)和6.0(API 23)的虚拟设备后每次打开Eclipse会报错:

发现了以元素 ‘d:skin’ 开头的无效内容。此处不应含有子元素。

解决方法有二:

  1. 用 ./sdk/tools/lib/devices.xml 替换报错路径里面的对应文件。
  2. 还有一个歪法,在SDK Manager里面把Android Wear的image删了。