Android Java - is not public in class; cannot be accessed from outside package
Vývoj android java aplikací - jak se vypořádat s chybou ... is not public in VolleyMultipartRequest; cannot be accessed from outside package, která nastane, když nemá třída explicitně nastavené vlastnictví a stane se z ní tzv. package-private.
Chyba
error: VolleyMultipartRequest.DataPart is not public in VolleyMultipartRequest; cannot be accessed from outside package protected Map<String, DataPart> getByteData() {
Příklad: Konstukce ve VolleyMultipartRequest
Třída DataPart nemá nastavené vlastnictví a je proto package-private
class DataPart {
private String fileName;
private byte[] content;
private String type;
public DataPart() { }
DataPart(String name, byte[] data) {
fileName = name;
content = data;
}
Řešení
Nastavit třídě Datapart explicitně public
public class DataPart {
private String fileName;
private byte[] content;
private String type;
public DataPart() { }
public DataPart(String name, byte[] data) {
fileName = name;
content = data;
}
musim se s vámi podělit s touto chybou na kterou jsem narazil při vývoji android aplikace, protože i ChatGPT mně neporadil. Mám třídu mimo Activity a potřebuji spustit intent. Bohužel to neustále vyhazovalo dokola chybu "null object reference" viz níže.
Požadovaný kód:
---------------------------------------
Intent intent = new Intent(view.getContext(), HomeActivity.class);
startActivity(intent);
Chyba:
---------------------------------------
FATAL EXCEPTION: main
Process: cz.warehouse, PID: 8874
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
at android.app.Activity.startActivityForResult
....
Řešení je:
---------------------------------------
Intent intent = new Intent(view.getContext(), HomeActivity.class);
view.getContext().startActivity(intent);
Není zač :-)