首先,这可能是重复的,但是我已经搜索了大量的小时尝试解决此错误,但有关此主题的找到页面都没有帮助我解决了错误。这是我去过的一些地方:
- Android:艾滋病拒绝从AIDL文件中生成代码,定义包裹
- AIDL错误在尝试返回自定义类对象时
- 如何返回Android AIDL文件中的MyObject列表?
- Android Parcelable-写和阅读arraylist<ia>当ia是接口
- (...(
test.java(实现包裹(:
package com.app.pack.classes;
public class Test implements Parcelable {
private int test = 33;
protected Test(Parcel in) {
test = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(test);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<Test> CREATOR = new Creator<Test>() {
@Override
public Test createFromParcel(Parcel in) {
return new Test(in);
}
@Override
public Test[] newArray(int size) {
return new Test[size];
}
};
}
test.aidl(声明我要发送的类(:
package com.app.pack.aidl;
parcelable Test;
TestService.AIDL(提供返回测试对象的方法(:
package com.app.pack.aidl;
import com.app.pack.aidl.Test;
interface TestService{
Test getAll(in int[] listOfInts);
}
当我在消息中重建项目时,gradle构建输出错误说:
c:用户... testservice.java
- "错误:找不到符号类测试"
执行任务失败':app:compiledebugjavawithjavac'。
汇编失败;有关详细信息,请参见编译器错误输出。
当我检查Gradle控制台时,我发现错误与此相关:
" AIDL.EXE E 02-28 12:08:49 8288 4608 AIDL.CPP:580]拒绝从AIDL文件中生成代码,以定义包裹
我尝试将test.java与test.AIDL和TestService.AIDL相同的软件包中,但没有修复它。还尝试重新创建test.java和test.AIDL,也没有起作用。还试图查看我的项目上的android.mk在哪里,但没有找到它,要么不存在,要么在我不知道的路径上。(也找不到JNI文件夹(。
有人可以帮助我找到一个答案,说明为什么AIDL尝试通过自己的对象时不工作/失败?当我尝试传递原始数据类型时,它可以很好地工作(例如:如果我尝试通过INT而不是测试,则可以使用(。
您的测试类的软件包名称与Java代码中的com.app.pack.aidl
中的 CC_1之间存在错误匹配;他们需要匹配。
据我从自己的项目中说明,refusing to generate code
错误可以忽略;根本没有从没有定义接口的文件中生成的代码,但是该工具盲目地为所有 *.AIDL文件运行aidl.exe
。