最近学习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的更多相关文章

  1. jenkins持续集成源码管理选项为None,构建失败找不到git.exe解决办法

    我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安 ...

  2. aidl.exe'' finished with non-zero exit value 1问题解决【转载】

    PS:Android Studio用AIDL时,碰到一个非常棘手的问题,但是百度之,压根非法解决,FQ出去,终于找到了一篇解决问题的文章,特地转载之. 之前使用aidl传递的都是基本的数据类型比如in ...

  3. [已解决] 含gorm、sqlite3包的go程序构建失败 C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1

    gorm官方文档教程实例,构建出现错误.C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit st ...

  4. AIDL/IPC Android AIDL/IPC 进程通信机制——超具体解说及使用方法案例剖析(播放器)

    首先引申下AIDL.什么是AIDL呢?IPC? ------ Designing a Remote Interface Using AIDL 通常情况下,我们在同一进程内会使用Binder.Broad ...

  5. (转)Python新手写出漂亮的爬虫代码2——从json获取信息

    https://blog.csdn.net/weixin_36604953/article/details/78592943 Python新手写出漂亮的爬虫代码2——从json获取信息好久没有写关于爬 ...

  6. (转)Python新手写出漂亮的爬虫代码1——从html获取信息

    https://blog.csdn.net/weixin_36604953/article/details/78156605 Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有 ...

  7. Jenkins拾遗--第四篇-适当的让构建失败

    问题的引出: 有一段我们的前端构建总会现git上分支名称中的版本号和工程里的版本号不一致的问题:这样会导致构一个问题:构建后的产品名称叫做1.1,但是进入app的关于页面,看到的版本还是1.0.这会让 ...

  8. Android Stduio 发生 Process 'command 'somePath:java.exe'' finished with non-zero exit value 2 异常的解决办法

    有时你会发现,在你使用Android Studio 进行编译的时候提示: Error:Execution failed for task ':demo:dexDebug'.> com.andro ...

  9. Process 'command 'D:\jdk8\jdk\bin\java.exe'' finished with non-zero exit value 2

    转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10539006.html 捣鼓了好久,现在已经不想说话,为何会出现这个问题,Process 'comman ...

随机推荐

  1. Excel用vlookup方法匹配数据

    (1) VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值.它的基本语法为:     VLOOKUP(查找目标,查找范围,返回值的列数,精确OR模糊查找) ...

  2. MySQL的变量--系统变量、状态变量

    MySQL的变量分为以下两种:1)系统变量:配置MySQL服务器的运行环境,可以用show variables查看2)状态变量:监控MySQL服务器的运行状态,可以用show status查看 一.系 ...

  3. koa2,koa1框架安装

    koa2版本安装: npm install koa@ -g hello2.js var Koa = require('koa'); var app = new Koa(); app.use(ctx = ...

  4. Jmeter进行简单mysql数据库测试

    1.环境准备: mysql: mysql-5.7.17.msi jdbc驱动: 自己百度一下即可 Jmeter:  3.2 2.打开Jmeter,创建测试计划,   点击浏览,添加jdbc驱动 3.添 ...

  5. hbase-0.98.1-cdh5.1.0伪分布式安装

    分三步: 1. 添加环境变量 2.编辑hbase-env.sh文件 3.编辑hbase-site.xml 文件 前提条件是安装好hadoop,下面展开说明 1. 添加环境变量 export HBASE ...

  6. PAM认证

    PAM认证 摘自: http://www.cnblogs.com/shenxm/p/8451889.html PAM(Pluggable Authentication Modules) Sun公司于1 ...

  7. Struts学习第一课 使用Filter作为控制器的MVC应用

    MVC设计模式概览 实现MVC(Model,View,Controller)模式的应用程序由3大部分构成: -模型:封装应用程序的数据和业务逻辑(POJO,Plain Old Java Object) ...

  8. html span

    提示:请使用 <span> 来组合行内元素,以便通过样式来格式化它们.注释:span 没有固定的格式表现.当对它应用样式时,它才会产生视觉上的变化.以上是w3上的标准解释,另外span是个 ...

  9. CSS学习系列3--CSS3中的box-shadow的使用

    在CSS中,text-shadow是给文本添加阴影效果. box-shadow则是给元素块添加周边阴影效果. box-shadow基本的语法形式如下 box-shadow: [inset] x-off ...

  10. 【linux-command not find解决方法 】

    在linux下我们经常输入某些命令时经常出现提示说:command not find 首先 当出现 command not find时肯定是环境变量的问题,所以得修改环境变量.下面我也引用一下其他牛人 ...