首页 > 其他 > 详细

新手写AIDL构建失败:...aidl.exe'' finished with non-zero exit value 1

时间:2019-04-11 19:14:51      阅读:776      评论:0      收藏:0      [点我收藏+]

最近学习aidl,写demo后编译报错,跟着《Android开发艺术探索》以及网上的一些aidl详解博客敲完后一直编译不过,错误日志如下:

Process ‘command ‘C:\Users\DELL\AppData\Local\Android\Sdk\build-tools\27.0.3\aidl.exe‘‘ finished with non-zero exit value 1

打开详细错误后很多,但也没有有效信息:

Caused by: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Users\DELL\AppData\Local\Android\Sdk\build-tools\27.0.3\aidl.exe‘‘ finished with non-zero exit value 1
    at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:382)
    at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46)
    ... 130 more

搜索网上的各种答案,常见原因如下:

  1. Java文件跟aidl文件报名不一致;
  2. aidl中没有显示引用数据对象类;
  3. aidl中没有描述数据对象类的in、out、inout标志;
  4. window默认aidl空格符为cr,aidl解析器用的是crlf,所以无法解析(改原因可能是早期的缺陷,现在的Android studio默认就是crlf)

上述的一个个试了后都没有解决,最后通过gradlew compileDebugSource --stacktrace -info打印构建log后发现有异常日志:

C:\usr\project\Aidl\app\src\main\aidl\com\niiwoo\aidl\aidl\Book.aidl:7: syntax error
C:\usr\project\Aidl\app\src\main\aidl\com\niiwoo\aidl\aidl\Book.aidl:7: syntax error don‘t know what to do with "interface"

在创建数据对象类Book.aidl时,Androidstudio默认创建了一个接口:

interface Book {
    ...
}

我看的教程中对这个接口的描述是“可以删除”,所以就以为可删可不删,最后删除后就可以编译了。
考虑到aidl的性质,默认创建的接口应该是控制类aidl生成的,数据对象类还是需要删除的。记录一下,希望对遇到同样问题的兄弟有一些帮助。
如有错误,欢迎留言指正!

新手写AIDL构建失败:...aidl.exe'' finished with non-zero exit value 1

原文:https://www.cnblogs.com/zhangzhonghao/p/10691575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!