Android Studio AIDL 自定义类型找不到问题

来源:互联网 发布:javascript json 数组 编辑:程序博客网 时间:2024/05/02 02:57

 如果你也是像我一样的新手,也是刚开始接触AIDL,也是在网上找了一些关于AIDL的简单例子,也在Android Studio下面尝试去敲代码来测试这些例子。碰巧和我一样找到了一个保存Person信息的例子,AIDL有个接口传递的是自定义类型Person的参数。(如果我们没有改Android Studio默认的文件结构,新建aidl文件的时候Android Studio 帮我们建了一个aidl的文件夹,因为在使用aidl的时候客户端和服务器端包名也要完全一样我们为了方便直接复制整个aidl文件夹到客户端会把aidl文件和aidl接口中用到的自定义类型都放到这个文件中)。当我们一步一步的进行编译的时候会报aidl接口中用到的自定义类型的包找不到。解决办法如下,我是这么干的。在gradle文件中加。

<code class="hljs bash has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">    <span class="hljs-built_in" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102); box-sizing: border-box;">source</span>Sets {        main {            manifest.srcFile <span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/AndroidManifest.xml'</span>            java.srcDirs = [<span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/java'</span>, <span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/aidl'</span>]            resources.srcDirs = [<span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/java'</span>, <span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/aidl'</span>]            aidl.srcDirs = [<span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/aidl'</span>]            res.srcDirs = [<span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/res'</span>]            assets.srcDirs = [<span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'src/main/assets'</span>]        }    }</code><ul class="pre-numbering" style="margin: 0px; padding: 6px 0px 40px; box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">1</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">2</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">3</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">4</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">5</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">6</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">7</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">8</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">9</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">10</li></ul>

把src/main/aidl文件也作为java.srcDirs, resources.srcDirs。

我的Server工程目录结构: 
这里写图片描述

整个工程的代码: Android Studio AIDL非常非常简单的一个例子

0 0
原创粉丝点击