I'm getting the following error:
frameworks/base/core/java/android/os/mypackage/MyServiceListenerClass.java:283: error 110: Parameter of unavailable type android.os.storage.VolumeInfo in android.os.mypackage.MyServiceListenerClass.myMethod()
I have created a new package with some classes and those classes use VolumeInfo
from the storage
package.
I couldn't find any documentation on this error. What have I done wrong?
UPDATE:
Found out that Error 110 = UNAVAILABLE_SYMBOL
.
Found this section in doclava/Stubs.java:
for (ParameterInfo p : m.parameters()) {
TypeInfo t = p.type();
if (!t.isPrimitive()) {
hiddenClass = findHiddenClasses(t);
if (null != hiddenClass) {
if (hiddenClass.qualifiedName() == t.asClassInfo().qualifiedName()) {
// Parameter type is hidden
Errors.error(Errors.UNAVAILABLE_SYMBOL, m.position(),
"Parameter of unavailable type " + t.fullName() + " in " + cl.qualifiedName()
+ "." + m.name() + "()");
} else {
// Parameter type contains a generic parameter
Errors.error(Errors.HIDDEN_TYPE_PARAMETER, m.position(),
"Parameter uses type parameter of unavailable type " + t.fullName() + " in "
+ cl.qualifiedName() + "." + m.name() + "()");
}
}
}
}
So the reason for this error was the @hide
attribute at the bottom of VolumInfo
's documentation part:
/**
* Information about a storage volume that may be mounted. A volume may be a
* partition on a physical {@link DiskInfo}, an emulated volume above some other
* storage medium, or a standalone container like an ASEC or OBB.
* <p>
* Volumes may be mounted with various flags:
* <ul>
* <li>{@link #MOUNT_FLAG_PRIMARY} means the volume provides primary external
* storage, historically found at {@code /sdcard}.
* <li>{@link #MOUNT_FLAG_VISIBLE} means the volume is visible to third-party
* apps for direct filesystem access. The system should send out relevant
* storage broadcasts and index any media on visible volumes. Visible volumes
* are considered a more stable part of the device, which is why we take the
* time to index them. In particular, transient volumes like USB OTG devices
* <em>should not</em> be marked as visible; their contents should be surfaced
* to apps through the Storage Access Framework.
* </ul>
*
* @hide
*/
Removing it solves the issue.