Java Android库项目:调用内部类的方法
我正在将一个Android项目拆分为一个库项目+几个相关项目的过程中,遇到了这个问题 图书馆项目有一个AndroidJava Android库项目:调用内部类的方法,java,android,scope,Java,Android,Scope,我正在将一个Android项目拆分为一个库项目+几个相关项目的过程中,遇到了这个问题 图书馆项目有一个Android服务,定义如下: public class UserService extends Service { public class LocalBinder extends Binder { UserService getService() { return UserService.this; } } .
服务
,定义如下:
public class UserService extends Service {
public class LocalBinder extends Binder {
UserService getService() {
return UserService.this;
}
}
...
}
public ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
LocalBinder binder = (LocalBinder) service;
mService = binder.getService();
mBound = true;
}
...
};
依赖项目调用服务的内部类的方法,如下所示:
public class UserService extends Service {
public class LocalBinder extends Binder {
UserService getService() {
return UserService.this;
}
}
...
}
public ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
LocalBinder binder = (LocalBinder) service;
mService = binder.getService();
mBound = true;
}
...
};
当所有内容都在同一个项目中时,这种方法很好用。但在我将服务移动到library项目中后,它出现了一个编译时错误:
The method getService() from the type UserService.LocalBinder is not visible
我需要更改什么才能使其编译?您的方法没有任何可见性修饰符,因此它只能从同一个包中的类中可见。将其公开以使其可从任何其他类访问:
public UserService getService() {
return UserService.this;
}
阅读以了解可见性修饰符。您的方法没有任何可见性修饰符,因此它只能从同一个包中的类中可见。将其公开以使其可从任何其他类访问:
public UserService getService() {
return UserService.this;
}
阅读了解有关可见性修改器的信息。感谢您的快速回答。我试过了,但还是出现了同样的错误。我重新使用了原始代码。我遇到了另一个与库项目转换相关的问题,如下所述:。当我解决了这个问题后,这个错误消失了——不确定它们之间的关系,但还是要谢谢你。谢谢你的回答。:)谢谢你的快速回答。我试过了,但还是出现了同样的错误。我重新使用了原始代码。我遇到了另一个与库项目转换相关的问题,如下所述:。当我解决了这个问题后,这个错误消失了——不确定它们之间的关系,但还是要谢谢你。谢谢你的回答。:)