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

最近学习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

时间: 2024-10-03 23:07:27

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

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

我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安装方式(在线安装需要连接VPN你懂的),如下图 重启后即可看到git按钮: 2.jenkins持续集成时,点击构建失败无法找到git.exe解决办法如下图: 控制台输出提示构建失败git.exe rev-parse --is-inside-work-tree # timeout=10:原因是没有找到

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

PS:Android Studio用AIDL时,碰到一个非常棘手的问题,但是百度之,压根非法解决,FQ出去,终于找到了一篇解决问题的文章,特地转载之. 之前使用aidl传递的都是基本的数据类型比如int .boolean之类的还有就是String类型的参数,并没有传递自己定义的class. 最近在开发的过程中重构代码时遇到了这个问题,网上也有文章提供了解决的办法,不过不太全面.我东拼西凑才把问题给解决了.这里记录一下. 一.直接在aidl中的方法参数传递一个自定义类参数. 看一下我们的aidl文

ReactNative踩坑系列--构建失败

初始化项目后执行react-native run-ios,构建失败: ** BUILD FAILED ** The following commands produced analyzer issues: Analyze /Users/lcz/workspace/APP/temp/node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.c Analyze /Users/lcz/workspace/APP/temp/node_modul

(016)给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树(keep it up)

给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树. 由于数组是递增有序的,每次都在中间创建结点,类似二分查找的方法来间最小树. struct TreeNode { int data; TreeNode* leftChild; TreeNode* rightChild; }; void newNode(TreeNode*& vNode, int vData) { vNode = new TreeNode; vNode->data = vData; vNode->leftChi

org.gradle.process.internal.ExecException: Process 'command 'D:\SDK\AS\sdk\build-tools\23.0.0\aapt.exe'' finished with non-zero exit value 1

AGPBI: {"kind":"error","text":"No resource identifier found for attribute \u0027text_titleText\u0027 in package \u0027 包名 \u0027","sources":[{"file":"D:\\workSpace\\Android Studio\\Bank\\res

【AS扫盲】build-tools\23.0.3\zipalign.exe'' finished with non-zero exit value 1

使用Android Studio(以下简称AS)一段时间了,不得不说,AS真的很智能,个人觉得比EC开发起来快多了,在这个过程中我也不多不少也解决了一些AS的一些错误,觉得有必要记录一下,所以开了此类博文,希望大家喜欢! 昨天遇到这个错误:Error:Execution failed for task ':app:zipalignDebug'.> Process 'command 'C:\Users\Administrator\AppData\Local\Android\sdk\build-to

Android Studio编译大工程报错:java.exe'' finished with non-zero exit value 1

版权声明:本文为博主原创文章,未经博主允许不得转载. Android Studio编译大工程报错:java.exe'' finished with non-zero exit value 1

安卓编译出错: Process 'command 'C:\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 1 解决!

安卓编译出错: Process 'command 'C:\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 1 解决! 刚从eclipse转到Android studio,安装完成之后搭建了系统默认的hello world代码工程,却出现了以下错误: Process 'command 'C:\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit va

com.android.dex.DexIndexOverflowException merging dependencies or error that java.exe finished with non-zero exit value 2

这个问题困扰我好一两天了,现在解决了这个麻烦的问题,我觉得有必要以博客的形式描述一下我这段心酸的解决经历,在网上查了好多关于这方面的资料,大多都是说编译的jar包,或者libs重复之类的(我用的是AS),但是我仔细看了好几遍我的builde.gradle文件,没有这个问题的存在,所以我就很纳闷,几番折腾,我觉得还是从错误log中去找bug的根源,发现 java.exe finished with non-zero exit value 2还是由com.android.dex.DexIndexOv