[Android]:AIDL找不到自定义类

最近在看一些AIDL入门的例子在编译时总是会遇到这种情况:

1.png

项目结构:

screenshot.png

这是《Android开发艺术探索》里的小例子,Book实现了Parcelable接口以通过Binder传输。BookManagerService实现IBookManager接口的两个方法,然后就可以在RemoteActivity(android:process=":remote"开启多进程)中调用这两个方法了:

screenshot.png


看了很多解决方法,主要就是用sourceSets指定对应的源码和资源,大部分都是在build.gradle(Moudle: app)中添加类似:

sourceSets {
    main {
        manifest.srcFile 'src/main/AndroidManifest.xml'
        java.srcDirs = ['src/main/java', 'src/main/aidl']
        resources.srcDirs = ['src/main/java']
        aidl.srcDirs = ['src/main/aidl']
        res.srcDirs = ['src/main/res']
        assets.srcDirs = ['src/main/assets']
    }
}

即把src/main/aidl目录下的自定义类(这里是Book)加入到java.srcDirs里面,因为此目录下的自定类也需要编译,添加后gradle文件形式如下:screenshot.png


编译完成后,整个工程结构就变成了:

screenshot.png

看上去aidl文件跑到了java文件夹,但其实aidl文件夹仍然在main/aidl下面与java文件夹同级:

screenshot.png

看来是自己对gradle的了解还是太少=_=。



猜你喜欢

转载自blog.csdn.net/aldnoah_zero/article/details/71082389
今日推荐