【问题标题】:Android Studio, aidl refusing to generate code from aidl file defining parcelable. Why?Android Studio,aidl 拒绝从定义 parcelable 的aidl 文件生成代码。为什么?
【发布时间】:2018-08-08 07:56:00
【问题描述】:

首先,这可能是重复的,但我已经搜索了大量小时试图修复这个错误,但没有找到关于这个主题的页面帮助我修复我的错误。以下是我去过的一些地方:

Test.java(实现 Parcelable):

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(提供返回Test对象的方法):

package com.app.pack.aidl;
import com.app.pack.aidl.Test;

interface TestService{
Test getAll(in int[] listOfInts);
}

当我在消息 gradle build 中重建项目时,输出的错误说:

C:\Users...\TestService.java

  • “错误:找不到符号类测试”

任务“:app:compileDebugJavaWithJavac”执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

当我检查 Gradle 控制台时,我发现错误与此有关:

“aidl.exe E 02-28 12:08:49 8288 4608aidl.cpp:580] 拒绝从定义 parcelable 的aidl文件生成代码”

我尝试将 Test.java 与 Test.aidl 和 TestService.aidl 放在同一个包中,但没有解决。 还尝试重新创建 Test.java 和 Test.aidl,也没有工作。 还尝试查看 android.mk 在我的项目中的位置,但没有找到,它要么不存在,要么位于我不知道的路径上。 (也找不到 jni 文件夹)。

当我尝试传递自己的对象时,有人可以帮我找到为什么aidl 不工作/失败的答案吗?当我尝试传递原始数据类型时,它可以正常工作(例如:如果我尝试传递 int 而不是 Test,它可以正常工作)。

【问题讨论】:

    标签: java android


    【解决方案1】:

    Test 类的包名不匹配,Test.aidl 中的 com.app.pack.aidl 与 Java 代码中的 com.app.pack.classes 不匹配;他们需要匹配。

    就我自己的项目而言,refusing to generate code 错误可以忽略;根本没有代码可以从没有定义接口的文件中生成,但是该工具会盲目地为所有 *.aidl 文件运行 aidl.exe。

    【讨论】:

    • 感谢您的帮助。我当时解决了这个问题,但至少现在我知道它为什么不起作用了。
    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多