Android编译和Ubuntu环境问题集锦

Android编译问题集锦

一些lib库找不到

1.libncurses.so5问题

Starting build with ninja
ninja: Entering directory `.'
[  0% 6/4247] target SharedLib: libdl (out/target/product/petrel-p1/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so)
FAILED: /bin/bash -c "prebuilts/clang/host/linux-x86/clang-2690385/bin/clang++ -nostdlib -Wl,-soname,libdl.so -Wl,--gc-sections -shared  -Lout/target/product/petrel-p1/obj/lib out/target/product/petrel-p1/obj/lib/crtbegin_so.o             out/target/product/petrel-p1/obj/SHARED_LIBRARIES/libdl_intermediates/libdl.o         -Wl,--whole-archive   -Wl,--no-whole-archive   out/target/product/petrel-p1/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/libcompiler_rt-extras.a   prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/lib/libatomic.a prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/../lib/gcc/arm-linux-androideabi/4.9/libgcc.a   -o out/target/product/petrel-p1/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so   -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--build-id=md5 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--icf=safe -Wl,--hash-style=gnu -Wl,--no-undefined-version -Wl,--no-fix-cortex-a8    -target arm-linux-androideabi -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/bin   -Wl,--exclude-libs=libgcc.a -Wl,--version-script=bionic/libdl/libdl.arm.map out/target/product/petrel-p1/obj/lib/crtend_so.o"
prebuilts/clang/host/linux-x86/clang-2690385/bin/clang++: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[  0% 6/4247] Docs droiddoc: out/target/common/docs/test-api-stubs
DroidDoc took 9 sec. to write docs to out/target/common/docs/test-api-stubs
ninja: build stopped: subcommand failed.
make: *** [build/core/ninja.mk:149: ninja_wrapper] Error 1

解决方式:
(1)先执行
sudo apt-get install libncurses*
(2)根据显示的库列表安装

jack服务问题

查看问题:

(1)在安卓源代码下的prebuilts/sdk/tools下运行./jack-admin jack-dump 后(大概)反正主要就是运行jack-dump)
(2)按照提示打开一个jack-report.xxx.zip文件,发现其中提示。

譬如:

20:13:50.282: SEVERE: com.android.jack.launcher.ServerLauncher: Server 1 Exception            
com.android.jack.server.api.v01.ServerException: './config.properties' must have permission rw------- but have rw-rw-r--
    at com.android.jack.server.JackServerImpl.run(JackServerImpl.java:65)
    at com.android.jack.launcher.ServerLauncher$3.run(ServerLauncher.java:391)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: './config.properties' must have permission rw------- but have rw-rw-r--
    at com.android.jack.server.JackHttpServer.checkAccess(JackHttpServer.java:696)
    at com.android.jack.server.JackHttpServer.loadConfig(JackHttpServer.java:513)
    at com.android.jack.server.JackHttpServer.<init>(JackHttpServer.java:379)
    at com.android.jack.server.JackServerImpl.run(JackServerImpl.java:61)
    ... 2 more

则根据对应的提示修改权限!

解决方式

1.方式一
修改通信端口,一般这种用于解决多用户的情况。
修改~/.jack-server/config.properties文件

#Fri May 18 14:48:45 CST 2018
jack.server.idle=180
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296
jack.server.shutdown=21600
jack.server.time-out=7200
jack.server.max-jars-size=104857600
jack.server.service.port=8396   #改其它没有在用的
jack.server.admin.port=8397。  #改其它没有在用的                                                                   
jack.server.config.version=4
jack.server.max-service=4
jack.server.deep-idle=900 

修改~/.jack-settings文件

# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8396  #和config.properties保持一致   
SERVER_PORT_ADMIN=8397   #和config.properties保持一致                                                                
# Internal, do not touch
SETTING_VERSION=4

2.方式二
停止服务,并删除jack,然后重新编译

./jack-admin kill-server 
./jack-admin uninstall-server 

3.方式三
解决方式:修改JVM的内存大小,如下修改文件的内容

修改prebuilts/sdk/tools/jack-admin 文件,变量JACK_SERVER_VM_ARGUMENTS,添加参数 -Xmx4096M

JACK_SERVER_VM_ARGUMENTS=”${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -mx4096M}”

4.方式四
(1)将系统默认的openjdk更改为oracle的jdk
解压jdk-8u261-linux-x64.tar.gz到主目录,然后

在.bashrc中添加
export JAVA_HOME=~/jdk1.8.0_261
export CLASSPATH=.:$JAVA_HOME/lib/
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_JAVA_TOOLCHAIN=$JAVA_HOME/bin
export LC_ALL=C

(2)需要执行source build/envsetup.sh后再最后执行source .bashrc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值