Android Studio,AIDL拒绝从AIDL文件定义包裹中生成代码.为什么



首先,这可能是重复的,但是我已经搜索了大量的小时尝试解决此错误,但有关此主题的找到页面都没有帮助我解决了错误。这是我去过的一些地方:

  • 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

最新更新