2016-10-10 99 views
0

我通过vagrant安装了Ubuntu 16.04。但是,当我运行make Android 7.0时,会发生以下错误。Android 7.0 Build Error

有任何建议或建议吗?

ninja: Entering directory `.' 
[ 0% 39/34804] host Java: ahat (out/ho...A_LIBRARIES/ahat_intermediates/classes 
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
[ 0% 53/34804] Generating TOC: out/tar.../core-all_intermediates/classes.jar.to 
FAILED: /bin/bash -c "(out/host/linux-x86/bin/ijar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp) && (if cmp -s out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc ; then rm out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp ; else mv out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc ; fi)" 
output_length=16459012 
Unable to open output file out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp: Invalid argument 
/bin/bash: line 1: 13460 Aborted     (core dumped) (out/host/linux-x86/bin/ijar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp) 
ninja: build stopped: subcommand failed. 
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed 
make: *** [ninja_wrapper] Error 1 

回答

1

我认为这是为Invalid argument for read-write mmap?

为同一如果一定要使用共享文件夹,请修改 编译/工具/ ijar/zip.cc

@@ -994,7 +994,7 @@ ZipBuilder* ZipBuilder::Create(const char* zip_file, u8 estimated_size) { 
    (u8) std::numeric_limits<size_t>::max()) 
    void *zipdata_out = mmap(NULL, mmap_length, PROT_WRITE, 
-       MAP_SHARED, fd_out, 0); 
+       MAP_SHARED | MAP_ANONYMOUS, fd_out, 0); 
    if (zipdata_out == MAP_FAILED) { 
     fprintf(stderr, "output_length=%llu\n", estimated_size); 
     return NULL; 

https://groups.google.com/forum/#!topic/android-building/qXsk-YpMdYo也许是相同的和你一样。

我希望它是有用的。

+0

格式为err.please修改ZipBuilder :: Create()方法中的代码:MAP_SHARED - > MAP_SHARED | MAP_ANONYMOUS – user7063108

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 - [发表评论](/ review/low-quality-posts/14077868) –

+0

感谢Jignesh Ansodariya。基本部分是ijar exe在build/tools/ijar/zip.cc中使用mmap。当你在VM上构建AndroidN时,如果文件夹位于共享文件夹中,则会出现关于mmap的错误。您可以在ZipBuilder :: Create()方法中将代码:mmap(xxx,xxx,MAP_SHARED,xxx)修复为mmap(xxx,xxx,MAP_SHARED | MAP_ANONYMOUS,xxx) ,我认为它会好的,否则你需要将代码移动到不共享文件夹。不过,我的英语水平很差。 – user7063108