最近学习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. 三、kafka主要配置

      1.Broker配置 <ignore_js_op>      2.Consumer主要配置 <ignore_js_op>  3.Producer主要配置 <ignor ...

  2. js提交数据时需判断是点击事件还是回车键

    使用回车键实质还是点击事件==回车时将焦点聚居在某个标签上. Html代码: <div id="btlogin" class="btlogin">& ...

  3. js页面跳转常用的几种方式(转)

    js页面跳转常用的几种方式 转载  2010-11-25   作者:    我要评论 js实现页面跳转的几种方式,需要的朋友可以参考下. 第一种: 复制代码代码如下: <script langu ...

  4. Ubuntu W: GPG 错误:下列签名无效: BADSIG 84DBCE2DCEC45805 Launchpad PPA fo

    Ubuntu12.04  安装R语言的时候出现的报错. 研究了两个晚上,解决办法如下,跟参考贴有点出入: ############################################### ...

  5. 20169219《linux内核原理与分析》第七周作业

    网易云课堂学习 把write系统调用加入到MenuOS里面 我在试验过程中在MenuOS里加入了time.time-asm.write和write-asm命令.以time和time-asm为例, 步骤 ...

  6. UT源码116

    2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. ...

  7. 微信小程序自学第四课:数据绑定

    WXML 中的动态数据均来自对应 Page 的 data. 一.简单绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于: 1.内容 <view> {{ mess ...

  8. 连接mysql时报:message from server: "Host '192.168.76.89' is not allowed to connect to this MySQL server 处理方案

    1.先用localhost方式连接到MySQL数据库,然后使用MySQL自带的数据库mysql; use mysql: 2.执行:select host from user where user = ...

  9. CodeForces 114B 【STL应用】

    思路: 原来string类能sort 和 swap....太强了.... 注意:字典序最小输出,因为某个地方写挫了,sort了n发,代码挫. #include <bits/stdc++.h> ...

  10. 使用imp命令和exp命令对oracle数据库进行导入导出操作

    命令说明 imp命令和exp命令需要在cmd命令窗口下执行,并且需要在系统环境变量中配置imp,exp命令所在目录 导出命令 --全库导出 exp system/systempassword@orcl ...