1

我正在将一个Android项目拆分为一个库项目+几个依赖项目,并遇到了这个问题。

库项目的 AndroidService定义如下:

public class UserService extends Service {

    public class LocalBinder extends Binder {
        UserService getService() {
            return UserService.this;
        }
    }
    ...
}

依赖项目调用内部类的方法,Service如下所示:

public ServiceConnection mConnection = new ServiceConnection() {

    public void onServiceConnected(ComponentName className, IBinder service) {
        LocalBinder binder = (LocalBinder) service;
        mService = binder.getService();
        mBound = true;            
    }
    ...
};

当一切都在同一个项目中时,这很好用。但是在我将服务移动到库项目之后,它给出了一个编译时错误:

The method getService() from the type UserService.LocalBinder is not visible

我需要更改什么才能使其编译?

4

1 回答 1

4

您的方法没有任何可见性修饰符,因此只能从同一包中的类中看到。将其公开以使其可从任何其他类访问:

    public UserService getService() {
        return UserService.this;
    }

阅读Java 教程以了解可见性修饰符。

于 2013-03-09T12:39:27.820 回答