I am trying to build a library with aidls.
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := $(call all-java-files-under, java) \
java/com/testapp/Istudent.aidl \
java/com/testapp/Itest.aidl \
LOCAL_PREBUILT_JAVA_LIBRARY := framework.jar
include $(BUILD_JAVA_LIBRARY)
I am trying to refer the Istudent in Itest.
Istudent.aidl
package com.testapp;
parcelable Istudent;
Istudent.java
public class Istudent implements Parcelable{}
Itest.aidl
package com.testapp;
import com.testapp.Istudent;
interface IAP2InterfaceBase {}
But error I receive is E 07-11 20:05:37 71066 71066 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
Kindly let me know what we mean by "refusing to generate code from aidl file defining parcelable" ? And what wrong I am doing here..
Reason for Error can be understood as per below source code of aidl:
https://github.com/debian-pkg-android-tools/android-platform-system-tools-aidl/blob/master/aidl.cpp Line:536
if (!interface) {
LOG(ERROR) << "refusing to generate code from aidl file defining "
"parcelable";
return AidlError::FOUND_PARCELABLE;
}
Also the aidl file that declares your parcelable class is not supposed to be included in build as mentioned on https://developer.android.com/guide/components/aidl.html under 'Passing Objects over IPC'. Below snippet copied from the website.
Finally, create an .aidl file that declares your parcelable class (as shown for the Rect.aidl file, below). If you are using a custom build process, do not add the .aidl file to your build. Similar to a header file in the C language, this .aidl file isn't compiled.