android源码编译错误处理
Ubuntu下Android源码修改、编译及运行、launcher定制
环境Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统GCC版本:gcc version 4.5.2Java版本:java version "1.6.0_26"下载android源码前注意:1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。
2、保证Ubuntu系统进行Internet访问。
联网方法:采用拨号进行连接。
相关操作步骤如下所示:1、虚拟机→设置→硬件→网络适配器→网络连接→桥接2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:$ pppoeconf //打开后输入上网账号跟密码,确认保存$ sudo pon dsl-provider //上网连接命令经过这两个步骤后就可以进行上网了。
Android源码编译所依赖的tools01.$ sudo apt-get update02.$ sudo apt-get -y install git-core03.$ sudo apt-get -y install gnupg04.$ sudo apt-get -y install sun-java6-jdk flex05.$ sudo apt-get -y install bison06.$ sudo apt-get -y install gperf07.$ sudo apt-get -y install libsdl-dev08.$ sudo apt-get -y install libesd0-dev09.$ sudo apt-get -y install libwxgtk2.6-dev10.$ sudo apt-get -y install build-essential11.$ sudo apt-get -y install zip12.$ sudo apt-get -y install curl13.$ sudo apt-get -y install libncurses5-dev14.$ sudo apt-get -y install zlib1g-dev15.$ sudo apt-get -y install valgrind注意:(如果是32bit的系统的话,则要更改几个Android.mk文件)01./external/clearsilver/cgi/Android.mk02./external/clearsilver/java-jni/Android.mk03./external/clearsilver/util/Android.mk04./external/clearsilver/cs/Android.mk用gedit打开,修改m64为m32即可另外将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为:ifneq (i686,$(findstring i686,$(build_arch)))对于32位系统所出现的问题,解决方法:Error1:make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1在terminal中输入$ gedit frameworks/base/libs/utils/Android.mk将LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissiveError2:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的修改源码目录下/build/core/combo/HOST_linux-x86.mk并将以下语句:HOST_GLOBAL_CFLAGS+= -D_FORTIFY_SOURCE=0修改为:HOST_GLOBAL_CFLAGS+= -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0Android源码下载1、安装repo安装过程步骤如下所示:Repo下载安装1、$ mkdir ~/bin //在home目录下创建bin文件夹2、$ PATH=~/bin:$PA TH //环境变量设置3、$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo //repo下载4、$ chmod a+x ~/bin/repo //权限设置,保证repo可执行Repo client初始化1、$ mkdir Android //创建Android目录,用于存放下载的android源码2、$ cd Android //进入到Android目录3、$ repo init -u https:///platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中当然也可以指定android版本,使用如下命令:$ repo init -u https:///platform/manifest -b android-4.0.1_r1Android源码文件获取$ repo sync注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站/source/downloading.html 进行查看。
Android:JACK编译错误汇总及解决
Android:JACK编译错误汇总及解决jack server交互命令:jack-admin start-serverjack-admin kill-serverjack-admin list-serverjack-admin uninstall-servermm -j32 showcommands &> mm.outjack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jarjack-admin dump-reportjack-admin dump-rejack-admin server-log 查找log所在⽬录问题⼀:多⽤户同时编译时报错错误信息:FAILED: setup-jack-server/bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompi Jack server already installed in "/home/disk/lixialong/.jack-server"Communication error with Jack server (35), try 'jack-diagnose' or see Jack server logSSL error when connecting to the Jack server. Try 'jack-diagnose'SSL error when connecting to the Jack server. Try 'jack-diagnose'解决⽅案:同时修改$HOME/.jack-settings和$HOME/.jack-server/config.properties中的端⼝号(⽐如都改为8386/8387,端⼝号值为0~65535,1024下的值不要⽤),⽅可⽀持多⽤户同时编译。
Android开发中的错误及解决办法总结
Android开发中的错误及解决办法总结⽬录⼀概述⼆错误类2.1 Cannot inline bytecode built with JVM target 1.82.2 Unable to find EOCD signature2.3 failed to read PNG signature: file does not start with PNG signature2.4 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8三警告类3.1 The ‘kotlin-android-extensions’ Gradle plugin is deprecated3.2 Warning: Mapping new ns xx/common/02 to old ns xx/common/01四⼯具类4.1 Task list not build总结⼀概述开发⼯具升级,依赖库,运⾏环境(jdk)等都会造成项⽬运⾏出现错误掌握开发中常见错误现象和问题及解决办法,能节省时间本⽂将不定期更新⼆错误类2.1 Cannot inline bytecode built with JVM target 1.8现象Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target解决⽅案android {...compileOptions {sourceCompatibility = 1.8targetCompatibility = 1.8}kotlinOptions {jvmTarget = "1.8"}}2.2 Unable to find EOCD signature现象1Execution failed for task ':app:packagexxxxRelease'.> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > Unable to find EOCD signature现象2Execution failed for task ':app:packageGame_ZHRelease'.> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > ng.IllegalArgumentException (no error message)原因依赖中添加了有关ABI相关的配置,打包输出时,未指定ABI版本解决办法(添加ABI输出)import com.android.build.OutputFilestatic def releaseTime() {return new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+8"))}buildTypes {release {minifyEnabled trueshrinkResources trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'applicationVariants.all { variant ->variant.outputs.all { output ->project.ext { appName = 'YourApkName' }outputFileName = "${appName}-${output.getFilter(OutputFile.ABI)}-${}-${variant.versionName}.apk"}}}}2.3 failed to read PNG signature: file does not start with PNG signature现象AAPT: error: failed to read PNG signature: file does not start with PNG signature.解决办法在app/build.gradle⽂件中加以下代码后,重构项⽬android {compileSdkVersion 28flavorDimensions "mode"aaptOptions.cruncherEnabled = falseeNewCruncher = falsedefaultConfig {}2.4 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8现象(项⽬创建时)An exception occurred applying plugin request [id: 'com.android.application']> Failed to apply plugin 'com.android.internal.application'.> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.You can try some of the following options:- changing the IDE settings.- changing the JAVA_HOME environment variable.- changing `org.gradle.java.home` in `gradle.properties`.解决办法依次点击:File——>Project Struct——>SDK Location——>JDK location was moved to Gradle Settings,在打开的对话框中,将Gradle JDK修改为11三警告类3.1 The ‘kotlin-android-extensions’ Gradle plugin is deprecated现象解决办法删除 apply plugin: 'kotlin-android-extensions'使⽤binding赋值.text = String3.2 Warning: Mapping new ns xx/common/02 to old ns xx/common/01现象解决办法(buildToolsVersion引起-修改前)compileSdkVersion 30buildToolsVersion "30.0.3"去掉buildToolsVersion或将buildToolsVersion版本降低compileSdkVersion 30buildToolsVersion "30.0.2"四⼯具类4.1 Task list not build现象解决办法1. 点击Task list not build,进⼊Settings——>Experimental,将Do not build Gradle task list duraing Gradle sync前⾯的勾选去掉,并应⽤2. 点击Sync Project with Gradle Files同步⼀下项⽬总结到此这篇关于Android开发中的错误及解决办法的⽂章就介绍到这了,更多相关Android开发错误及解决内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译
Android 4.2源码的下载和编译环境的安装及源码的编译Google于2012.11.14发布了Android4.2的源码,下面把本人在ubuntu10.04 的64位系统上下载源码,和编译源码做个记录备份,也供有需要的人参考,若是在下载编译安装Android源代码遇到问题,可加QQ群交流: 217706590,难免有错,敬请见谅,还忘勿吝啬指出。
源代码下载、编译环境安装、源代码编译和运行模拟器的可能出现的一些错误在本文最后一章节,若出现类似错误,可以参考。
1、源码的下载源代码的下载,首先需要安装以下软件:curl 和git-core1.1安装curl:在终端中执行:sudo apt-get install curl1.2安装git-core1.2.1在用户目录下新建bin文件在终端中执行:mkdir ~/bin将~/bin添加环境变量,作用是:要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中在终端中执行:PA TH=~/bin:$PATH1.2.2安装git-core在终端中执行:curl https:///dl/googlesource/git-repo/repo§> ~/bin/repo给repo执行权限:chmod a+x ~/bin/repo1.3 下载源代码1.3.1进入要源代码将要保存的目录如我的源代码保存在:、/opt/android/src在终端中执行:cd /opt/android/src 进入到src目录中1.3.2 获取repo最新的配置repo init -u https:///platform/manifest§若是执行错误则用以下命令:~/bin/repo init -u https:///platform/manifest§1.3.3 下载源代码对于下载不同版本的android,指定一个manifest分支(即只指明android对应的版本),使用-b参数(即下载某个版本的源代码),如:对于4.2的版本,将命令修改为repo init -u https:///platform/manifest§ -b android-4.2_r1若是执行错误则用以下命令:~/bin/repo init -u https:///platform/manifest§ -b android-4.2_r1 执行以上命令后,会在/opt/android/src目录中生成一个.repo的目录,此目录保存了将要下载的源代码的相关信息同步获取源码#~/bin/repo sync如果中间出现中断,这个很正常,你可以再次输入~/bin/repo sync 命令来进行下载。
编译错误名词解释
编译错误名词解释编译错误是计算机程序的一种常见错误,它可能会导致程序突然停止运行、出现显示闪烁或无法正常运行等状况。
编译错误指的是在将程序转换为可执行代码时可能出现的错误,这也是编译器为何重要的原因之一。
下面就来讨论几种常见的编译错误以及它们的解决办法。
语法错误:语法错误是最常见的编译错误,它是指语言语法的错误,比如它们的标点符号,句子结构,函数声明,变量声明等是错误的,需要根据编程语言的语法规则来更正它们的错误。
类型错误:类型错误是变量和数据类型不匹配所导致的一种编译错误。
比如在将整数值转换为浮点数值时,应该使用float函数,否则会出现类型错误。
此外,这类错误还会出现在在使用不匹配的变量或类型进行比较或运算时。
解决类型错误的方法是确保所有变量和值的类型都是正确的,而且必须匹配。
标签错误:标签错误是指在程序中使用错误的标签,这些错误的标签会导致程序无法执行,因为编译器无法判断要执行的代码的准确位置。
解决标签错误的方法是,需要对程序代码进行检查,如果发现标签有问题,要及时调整和修改。
外部应用程序引用错误:外部应用程序引用错误是指程序中引用了不存在的外部应用程序,这样编译器就会报告错误,因为它找不到要引用的程序。
解决方法是安装引用的外部应用程序,或者将程序中的引用从外部应用程序移除掉。
变量重定义错误:变量重定义错误是指程序中变量被重复定义,比如在同一代码段中定义两个同名变量,编译器会报错,说明程序存在变量重复定义的问题。
解决方法是在程序中查找相同名字的变量,将其中一个变量名称更改。
语义错误:语义错误是指程序中出现的语义错误,这种错误主要是由于编程者在写程序时使用了错误的语法语义而造成的,它会导致程序的运行结果不正确。
解决方法是检查程序代码,确定错误的语义,然后更正错误的语句。
以上就是编译错误的几种常见形式,并简要介绍了它们的解决办法。
了解了这些信息,编程者就可以更好地识别编程中可能出现的编译错误,从而可以更有效地解决编译问题,让自己的程序代码更加完美且更具有可维护性。
ubuntu下android源码编译修改遇到到问题及解决办法
刷机时,该路径中到apk都会成为系统自带应用。
9. 错误: ./adb devices 提示???????????? no permissions
----解决办法:切换到root用户,使用adb kill-server, adb start-server 就可以了
build下的一个文件:
source build/envsetup.sh (前面要加上source,否则找不到mmm等命令)(不同的shell窗口都得运行该命令后才能使用mmm等命令)
b. 使用mmm命令来编译指定的模块,例如QuickSearchBox应用程序:
//注释 ~/Android/out/host/linux-x86/bin有我们要执行的emulator命令,而~/Android/out/target/product/generic是Android镜像存放目录,下面执行emulator命令时会用到。
emulator
adb -s emulator-5554 install -r ebook.apk
在真机上重新安装ebook.apk
adb -s HT9BYL904399 install -r ebook.apk
在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录)
adb -s emulator-5554 uninstall net.blogjava.mobile.ebook
02-23 11:11:16.719: I/EasouSearch(2741): http get::8080/oss/upload/QuickSearchBox.apk
Ubuntu 12.0 64位源码编译Android4.0
Ubuntu 12 64位编译Android 4.0.1源码问题和解决办法系统满足的条件:在VMware下,最好给客户虚拟机1.5G内存,30G以上的硬盘。
实现应该要安装的软件:For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required. Older versions can be compiled on 32-bit systems.Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree.Detailed instructions for Ubuntu and MacOS follow. In general you will need:You will need a 64-bit version of Ubuntu.Ubuntu 10.04 is recommended. Building using a newer version of Ubuntu is currently only experimentally supported and is not guaranteed to work on branches other than master.$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \python-markdown libxml2-utils xsltproc zlib1g-dev:i386$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so源码编译过程中可能出现的问题:1、make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1make: ***解决方法:gedit frameworks/base/libs/utils/Android.mk把LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive2、make: ***[out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes -with-local.dex] Killed解决方法:把虚拟机ubuntu系统分配内存1G,有条件最好对于1G3、<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1解决方法:修改build/core/combo/HOST_linux-x86.mk 61行,将HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0修改成HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0昨天下载、编译了android-4.0.3,遇到的问题贴出来,共享一下:环境要求改变。
android 源码编译常见错误
6、错误:
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
解决:Байду номын сангаас
sudo apt-get install lib32ncurses5-dev
8、错误:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1
解决:
sudo apt-get install libx11-dev
9、错误:
sh: gperf: not found
B.mini6410用户手册。
calling gperf failed: 32512 at ./makeprop.pl line 96.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25
android apk应用系统集成编译错误问题
android apk应用系统集成编译错误问题在系统源码中添加一个APK源码目录,并写了相应的android.mk文件,编译时出错如下:make: *** No rule to make target`out/target/common/obj/JAVA_LIBRARIES/liba71S_intermediates/javalib.jar', needed by`out/target/common/obj/APPS/My_Settings_intermediates/classes-full-debug.jar'. Stop.make: *** Waiting for unfinished jobs....按之前的经验,尝试了几种方法,发现都没有解决,后来定位到android.mk文件写的有问题修改前:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_JAVA_LIBRARIES := bouncycastle telephony-commonLOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 testinterfaceLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_PACKAGE_NAME := My_SettingsLOCAL_CERTIFICATE := platformLOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :android-support-v4:libs/android-supp ort-v4.jar testinterface:libs/testinterface.jarinclude $(BUILD_PACKAGE)# Use the folloing include to make our test apk.include $(call all-makefiles-under,$(LOCAL_PATH))上述编译会出错,修改后,编译oKLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_JAVA_LIBRARIES := bouncycastle telephony-commonLOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 testinterfaceLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_PACKAGE_NAME := My_SettingsLOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :android-support-v4:libs/android-support-v 4.jar testinterface:libs/testinterface.jarinclude $(BUILD_MULTI_PREBUILT)# Use the folloing include to make our test apk.include $(call all-makefiles-under,$(LOCAL_PATH))其他说明:1.要使用mm命令单独编译某个模块或者应用,首先需要在JB目录下全部编译一次。
如何处理代码中的编译器错误
如何处理代码中的编译器错误编写代码时,经常会遇到编译器错误。
这些错误可能是语法错误、类型错误、逻辑错误等。
对于初学者来说,正确处理这些错误是一项重要的技能。
本文将介绍一些处理编译器错误的方法,帮助您更好地解决问题。
处理编译器错误的步骤如下:1.仔细阅读错误信息:当编译器发现错误时,它会生成错误信息,通常包括错误的类型、错误的位置和相关的详细信息。
首先,要仔细阅读错误信息,理解错误的类型和位置。
2.检查错误的代码行:根据错误信息,找到代码中与错误相关的行。
检查这些行,看看是否有明显的错误,比如拼写错误、缺少分号等。
3.阅读文档或向导:如果您遇到不熟悉的错误,可以阅读编程语言的官方文档、教程或向导,寻找错误的解决方案。
这些资源通常提供了常见错误的解释和解决方法。
4.使用搜索引擎:如果您无法找到编程语言的文档或解决方案,可以使用搜索引擎搜索错误信息或相关关键字。
通常会有其他开发者遇到类似的问题,并提供了解决方法。
5.检查变量和函数:编译器错误可能与变量或函数的类型不匹配有关。
检查相关的变量和函数声明,并确保它们的类型正确。
如果类型不匹配,可能需要修改它们的声明或进行类型转换。
6.注释或删除问题代码:如果错误是由于特定代码行引起的,可以尝试注释掉该行或删除它,然后重新编译程序。
如果编译成功,可以逐步恢复修改,找出引起错误的具体原因。
7.检查依赖库或模块:如果错误涉及到使用第三方库或模块,可能是由于缺少依赖项或版本不兼容引起的。
确保已正确安装和配置所需的依赖库,并检查版本是否匹配。
8.请求帮助:如果您尝试了以上方法仍然无法解决错误,可以寻求他人的帮助。
您可以向同事、论坛、开发者社区或在线编程问答网站(如Stack Overflow)提问,并提供尽可能详细的错误信息和相关代码。
9.实验和调试:处理编译器错误通常需要进行反复尝试和实验。
您可以尝试修改代码、引入调试语句、使用调试工具等,来定位和解决问题。
如果可能,尝试在更简化的环境中复现错误,以便更容易找到问题。
【推荐下载】Android编译-missing separator-错误的解决
Android 编译”missing separator”错误的解决2016/11/17 14203今天在Android7.0 源码环境中利用mm 编译某个模块的时候,总是莫名的报错,报错信息如下:device/actions/common/prebuilt/apk/actions/FileExplorer/Android.mk:15: *** missing separator.1 ifeq ($(wildcard $(TOP)/device/actions/common/packages/AgingTest/Android.mk),)23 LOCAL_PATH := $(call my-dir)4 include $(CLEAR_VARS)5 LOCAL_MODULE := prebuild_apk_AgingTest6 LOCAL_MODULE_STEM := prebuild_apk_AgingTest.apk7 LOCAL_SRC_FILES := app/AgingTest.apk8 LOCAL_MODULE_TAGS := optional9 LOCAL_MODULE_CLASS := APPS 10 LOCAL_DEX_PREOPT := false 11 LOCAL_CERTIFICATE := PRESIGNED 12 LOCAL_MODULE_PATH := $(TARGET_OUT)/app 13 include $(BUILD_PREBUILT) 14 15 endif #here need a space, why? without it, compile failed! 没发现什么错误啊,但就是编译不过啊,搞了很久,最后发现:居然是最后一行的”endif”后面没有空格导致的,加个空格就可以编过,这他娘的什么江湖啊,不是,什么规则啊,知道的同学,麻烦告知,不胜感激!tips:感谢大家的阅读,本文由我司收集整编。
android源码编译问题,解决Android源码编译错误的问题
android源码编译问题,解决Android源码编译错误的问题如下所⽰:Building with Jack: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dexFAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rspOut of memory error (version 1.2-a26 'Carnac' (291201 fcd657165d2fd6dcf1bf4c3002c9c8f75383e815 by android-jack-team@)).GC overhead limit exceeded.Try increasing heap size with java option '-Xmx'.Warning: This may have produced partial or corrupted output.ninja: build stopped: subcommand failed.在⽂件/prebuilts/sdk/tools/jack-admin中修正-Xmx参数。
1、修改变量JACK_SERVER_VM_ARGUMENTS,添加参数 -Xmx2048MJACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -mx2048M}"2、进⼀步修正重启参数(该步骤可以省略)找到jack-admin中的start-server语句,直接在⾥⾯增加:start-server)isServerRunningRUNNING=$?if [ "$RUNNING" = 0 ]; thenecho "Server is already running"elseecho "before to start-server,JACK_SERVER_VM_ARGUMENTS=" $JACK_SERVER_VM_ARGUMENTSJACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS-Xmx2048M -cp $LAUNCHER_JAR $LAUNCHER_NAME"echo "Launching Jack server" $JACK_SERVER_COMMAND(补充知识:编译android 7.0 出现Try increasing heap size with java option '-Xmx'错误解决⽅案出现这个错误是由于电脑内存不⾜,在命令⾏分别执⾏以下三条语句,然后继续编译export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"./prebuilts/sdk/tools/jack-admin kill-server./prebuilts/sdk/tools/jack-admin start-server以上这篇解决Android 源码编译错误的问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
QTAndroidGradle奇怪的编译错误
QTAndroidGradle奇怪的编译错误
QTAndroidGradle奇怪的编译错误
这两天在⼀个Qt Android⼀程中遇到了以下错误:
* What went wrong:
A problem occurred evaluating root project 'android-build'.
Could not find method ?buildscript() for arguments
[build_9bq7gzvq652usqor1evday8ix$_run_closure1@67327 26] on root project 'android-build' of type org.gradle.api.Project.
各种搜索后,⼀任何结果。
倒是在这个过程中,把gradle与andriod sdk各个版本的关系稍微理清了。
最终,还是靠⼀⼀敏锐的直觉发现的了问题,哈哈。
注意看出错提⼀的⼀法名称,前⼀有⼀个诡异的问号“?”。
于是联想到是不是build.gradle⼀件编码⼀式有问题。
打开后,发现编码采⼀了UTF8-BOM⼀案。
改为UTF8后,编译通过了!问题虽然解决了,但是gradle为什么不能采⼀UTF8-BOM的编码⼀式,还有待研究。
Android 4编译错误汇总
2.Q:frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBa se.o] Error 1解决方法:$ gedit frameworks/base/libs/utils/Android.mk修改以下语句LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)为LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive3.Q:arm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directorymake: *** [out/target/product/generic/obj/lib/crtbegin_dynamic.o] Error 1如果之前的依赖包都已经安装成功的话,此处应该是交叉编译工具权限的问题。
这个问题只要在文章开头lunch时执行了赋予权限命令,就应该不会遇到了。
4.Q:<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]<built-in>:0:0: note: this is the location of the previous definition cc1plus: all warnings being treated as errorsmake: ***[out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的。
Ubentu编译Android源码(AOSP)
Ubentu编译Android源码(AOSP)前⾔:⼀直想要编译⼀下Android 源码,之前去google 看,下载要下载repo。
当时很懵逼,repo 是个什么?(repo 是⼀个python 脚本,因为Android 源码git 仓库太多,帮助管理git 仓库的,你不需要知道⾥⾯什么实现。
会⽤就⾏。
)然后往下看,看到⽹上说,编译Android AOSP 只能⽤Ubuntu,当时⾃⼰的⼼也哇哇凉啊。
⾃⼰只有⼀个⼯作的电脑,⾃⼰的电脑配置太低。
看⽹上说,还要200G 的空间。
(有⼀个拦路虎)之前⾃⼰给⾃⼰的windos 安装过双系统,但是好像⼀直启动不了。
现在想想,应该是因为当时没有设置引导盘的顺序吧。
现在我⽤⼀个usb 连接了⼀个1T的硬盘,⾥⾯安装了Ubentu . 如果我插了这个硬盘,启动的就是ubuntu, 如果没有,就是⼯作的windows 。
⼯作学习两不误。
不知道什么动⼒让我突破了所有上⾯的拦路虎,依然决然去编译源码。
⾯试的时候,别⼈提到过,我说我想,但是没有做到,别⼈说,那么你为了编译源码,你第⼀步应该怎么做? 我说⾸先下载源码,安装Ubuntu。
终于⼀步⼀步⾛过来了。
感谢⾯试的那个⼈给我指点,让我思考。
⼀路⾛来,少些艰⾟。
下载代码⽤了两天,还是下载的清华镜像的,公司的⽹太慢了,43G 下载了两天,然后正好周末,编译成功花费了两天周末时间,但是还是很值得的。
⾥⾯有很多坑,给⼤家分享下。
下载AOSP:google 的AOSP 的话,因为FQ和数据量太⼤,考虑国内的镜像。
这个⽹址是清华⼤学的镜像站。
由于⾸次同步需要下载约 30GB 数据,过程中任何⽹络故障都可能造成同步失败,我们强烈建议您使⽤初始化包进⾏初始化。
也就是我们直接下载⼀个git仓库。
这样的话,不会说,⽂件太⼤,git clone 的时候⽼是中断。
下载下载完成后记得根据 checksum.txt 的内容校验⼀下。
当时我是⽤Windows 迅雷下载的⽂件。
android4.1编译
Android4.1.4编译1、下载源码:我是在ics版本的基础上通过repo sync更新,发现有了android 4_1_r1的分支,等待更新完,repo branch 切换分支,然后. Build/envsetup.she 然后lunch 1 选择full-eng 最后make ,过一会报错。
提示:build/core/product_config.mk:193: *** _nic.PRODUCTS.[[build/target/product/vbox_x86.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.** Don't have a product spec for: 'full'** Do you have the right repo manifest?Google baidu bing了大半天终于在android的bug单中找到了这条bug,解答是源码不全。
愁了半天,repo sync 都是最新的,愁了半天,最后再ics的repo中重新下了个android4.1.4的分支。
repo init -u https:///platform/manifest -b android-4.1.1_r4repo sync下载3个小时,终于下载完成,本来下载源码需要很长时间5~10个小时,由于再ics的基础上下载,只需要把patch下载就行了(repo会自动完成)。
兴奋啊,赶紧.Build/envsetup.shlunch 1 full-eng警告:/bin/bash:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件/bin/bash:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件/bin/bash:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件先没管它,继续机制行make cleanmake -j8过了几分钟提示错误:host StaticLib: libhost (out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a)ERROR:prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linu x-ar only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a] 错误 1host C: emulator-target-i386 <= external/qemu/cpus.chost C: emulator-target-i386 <= external/qemu/arch_init.chost C: emulator-target-i386 <= external/qemu/os-posix.chost C: emulator-target-i386 <= external/qemu/oslib-posix.chost C: emulator64-arm <= external/qemu/audio/audio.chost C: emulator64-arm <= external/qemu/disas.cERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/EXECUTABLES/emulator64-arm_intermediates/disas.o] Error 1make: *** Waiting for unfinished jobs....ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/EXECUTABLES/emulator64-arm_intermediates/audio/audio.o] Error 1又陷入郁闷,google baidu了好半天,都没找到解决方案,不过找到了提示,就是谷歌推荐使用64位的ubuntu 10.04 来编译,很多配置都是基于64来的,所以32位系统编译会遇到很多问题。
android studio 中文注释导致编译失败的解决方法
android studio 中文注释导致编译失败的解决方法在Android开发过程中,使用Android Studio作为开发工具是常见的选择。
有时,开发者为了方便阅读和维护,会在代码中添加中文注释。
然而,这有时会导致编译失败的问题。
本文将针对这一现象,详细讲解如何解决因中文注释引起的编译失败问题。
### Android Studio 中文注释导致编译失败的解决方法#### 原因分析1.**编码问题**:在某些情况下,项目的编码设置可能与包含中文注释的文件编码不匹配,导致编译器无法正确解析中文注释。
2.**IDE设置问题**:Android Studio的某些设置可能不支持非ASCII字符(如中文)。
#### 解决方案以下提供几种解决方法,开发者可以根据自己的情况进行尝试:1.**修改文件编码**:- 将包含中文注释的文件另存为UTF-8编码。
在Android Studio中,可以通过`File -> Save As`,然后在弹出的保存对话框中选择UTF-8编码保存。
- 在项目的`build.gradle`文件中,确保以下配置使用了UTF-8编码:```groovytasks.withType(JavaCompile) {options.encoding = "UTF-8"}```2.**IDE设置**:- 在Android Studio中,进入`File -> Settings(或Preferences)-> Editor -> File Encodings`,将Global Encoding和Project Encoding设置为UTF-8。
- 同时,勾选`Transparent native-to-ascii conversion`选项,以支持ASCII以外的字符。
3.**注释位置调整**:- 如果注释位于某些特定的位置,如文件头部的文档注释,可能需要将其移到代码区域内部。
android studio编译short read of der length
在Android Studio编译时出现"short read of der length" 错误,通常涉及到证书或密钥相关问题。
这个错误信息提示DER编码的长度读取不完整。
以下是一些可能的解决方案:
1. 检查证书和密钥文件:确保使用正确的证书和密钥文件进行编译和签名。
检查文件路径和文件格式是否正确。
2. 检查证书和密钥的完整性:确保证书和密钥文件没有被损坏或篡改。
如果文件有问题,可以尝试重新生成或获取正确的证书和密钥。
3. 清除Gradle缓存:尝试清除Gradle缓存并重新构建项目。
可以在命令行中使用以下命令清除Gradle缓存:
./gradlew cleanBuildCache
4. 更新Android Studio:确保使用最新版本的Android Studio。
有时旧版本的Android Studio可能存在一些已知的BUG,更新到最新版本可能能够解决该问题。
5. 更新Gradle版本:如果项目中使用了Gradle构建系
统,尝试更新Gradle版本。
在项目的build.gradle文件中进行更新,例如:
classpath 'com.android.tools.build:gradle:4.0.1'
6. 重新导入证书:如果以上方法都没有解决问题,可以尝试重新导入证书。
首先删除导入的证书,然后再次导入并确保正确配置。
如果以上方法仍然无法解决问题,建议参考相关文档和论坛来了解更多关于 "short read of der length" 错误的解决方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
external/clearsilver/cgi/cgi.c:885: error: for each function it appears in.)
* external/clearsilver/java-jni/Android.mk
* external/clearsilver/util/Android.mk
* external/clearsilver/cs/Android.mk
把这四个Makefile中的下列语句注掉即可:
external/clearsilver/cgi/cgi.c:888: error: ‘Bytef’ undeclared (first use in this function)
external/clearsilver/cgi/cgi.c:888: error: expected expression before ‘)’ token
#$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
#$(warning ************************************************************)
#$(error stop)
本文是我编译过程所遇到的一些问题,然后通过搜索网络解决方法,结实验都能成功,本着从网络受益也回报网络,特整理成文档以便他人少走弯路。
我在编译的过程中遇到下面的错误:
************************************************************
You are attempting to build on a 32-bit system.
make: *** [out/target/common/docs/doc-comment-check-timestamp] Error 45
这是由于clearsilver在编译时如果检测到使用Java JDK 6,就使用64位编译。要避开此错误,需要修改下面四个文件:
* external/clearsilver/cgi/Android.mk
of java.
Your version is: /bin/bash: java:找不到命令.
The correct version is: 1.6.
Please follow the machine setup instructions at
/source/download.html
make: *** [out/host/linux-x86/obj/lib/libneo_util.so] 错误 1
解决方法:
sudo apt-get install g++-multilib
external/clearsilver/cgi/cgi.c:22:18: error: zlib.h: 没有那个文件或目录
external/clearsilver/cgi/cgi.c:892: error: expected ‘)’ before ‘stream’
external/clearsilver/cgi/cgi.c:895: error: ‘alloc_func’ undeclared (first use in this function)
host SharedLib: libneo_util (out/host/linux-x86/obj/lib/libneo_util.so)
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
external/clearsilver/cgi/cgi.c:890: error: expected expression before ‘)’ token
external/clearsilver/cgi/cgi.c:892: error: ‘uLong’ undeclared (first use in this function)
target Generated: libclearsilver-jni <= out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/javalib.jar
host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.c
In file included from /usr/include/features.h:378,
from /usr/include/string.h:26,
from external/clearsilver/java-jni/j_neo_util.c:1:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 没有那个文件或目录
external/clearsilver/cgi/cgi.c:889: error: ‘uInt’ undeclared (first use in this function)
external/clearsilver/cgi/cgi.c:889: error: expected ‘;’ before ‘str’
external/clearsilver/cgi/cgi.c: In function ‘cgi_compress’:
external/clearsilver/cgi/cgi.c:885: error: ‘z_stream’ undeclared (first use in this function)
sudo apt-get install bison libc6-dev-amd64 g++-multilib zlib1g-dev lib64z1-dev flex libncurses5-dev libx11-dev gperf
下面是我遇到的错误及解决方法:
/bin/bash: bison:找不到命令
#ifneq (64,$(findstring 64,$(build_arch)))
#$(warning ************************************************************)
#$(warning You are attempting to build on a 32-bit system.)
make: *** [out/target/common/docs/api-stubs-timestamp] Error 45
make: *** Waiting for unfinished jobs….
Could not load ‘clearsilver-jni’
java.library.path = out/host/linux-x86/lib
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
external/clearsilver/cgi/cgi.c:885: error: expected ‘;’ before ‘stream’
external/clearsilver/cgi/cgi.c:888: error: ‘stream’ undeclared (first use in this function)
************************************************************
build/core/main.mk:114: *** stop。 停止。
解决方法:
sudo apt-get install bx-x86/framework/droiddoc.jar
当编译完成时,生成的image文件放在out/target/product/generic目录中。
刚下好 android 源码后马上编译会发现有各种各样的错误,原因是有些依赖包没有装。
为了避免出现以下我遇到的错误,请先安装 jdk1.5,必须是 jdk1.5,不然肯定编译不过的。
然后,在检查以下有没有安装以下依赖包:
#endif
接下来又遇到下面的错误:
Docs droiddoc: out/target/common/docs/api-stubs
Could not load ‘clearsilver-jni’
java.library.path = out/host/linux-x86/lib