Java Android Studio,aidl拒绝从定义包裹的aidl文件生成代码。为什么?
首先,这可能是重复的,但是我已经搜索了好几个小时试图修复这个错误,并且没有找到任何关于这个主题的页面帮助我修复我的错误。以下是我去过的一些地方:Java Android Studio,aidl拒绝从定义包裹的aidl文件生成代码。为什么?,java,android,Java,Android,首先,这可能是重复的,但是我已经搜索了好几个小时试图修复这个错误,并且没有找到任何关于这个主题的页面帮助我修复我的错误。以下是我去过的一些地方: (……) Test.java(实现可包裹): TestService.aidl(提供返回测试对象的方法): 当我在消息gradle build中重建项目时,输出的错误显示: C:\Users…\TestService.java “错误:找不到符号类测试” 任务“:app:compiledBugJavaWithJavaC”的执行失败 编译
- (……)
- “错误:找不到符号类测试”
有人能帮我找到一个答案,为什么当我试图通过我自己的物体时,aidl不工作/失败?当我尝试传递一个基本数据类型时,它工作得很好(例如:如果我尝试传递一个int而不是一个测试,它工作得很好)。在Test.aidl中的包名
com.app.pack.aidl
与Java代码中的com.app.pack.classes
之间存在不匹配;他们需要匹配
就我自己的项目而言,
拒绝生成代码
错误可以忽略;没有任何代码可以从没有定义接口的文件生成,但是该工具会盲目地为所有*.aidl文件运行aidl.exe
。谢谢您的帮助。当时我一直在解决这个问题,但至少现在我知道为什么它不起作用了。
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];
}
};
}
package com.app.pack.aidl;
parcelable Test;
package com.app.pack.aidl;
import com.app.pack.aidl.Test;
interface TestService{
Test getAll(in int[] listOfInts);
}