Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android库项目:调用内部类的方法_Java_Android_Scope - Fatal编程技术网

Java Android库项目:调用内部类的方法

Java Android库项目:调用内部类的方法,java,android,scope,Java,Android,Scope,我正在将一个Android项目拆分为一个库项目+几个相关项目的过程中,遇到了这个问题 图书馆项目有一个Android服务,定义如下: public class UserService extends Service { public class LocalBinder extends Binder { UserService getService() { return UserService.this; } } .

我正在将一个Android项目拆分为一个库项目+几个相关项目的过程中,遇到了这个问题

图书馆项目有一个Android
服务
,定义如下:

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;
    }

阅读了解有关可见性修改器的信息。

感谢您的快速回答。我试过了,但还是出现了同样的错误。我重新使用了原始代码。我遇到了另一个与库项目转换相关的问题,如下所述:。当我解决了这个问题后,这个错误消失了——不确定它们之间的关系,但还是要谢谢你。谢谢你的回答。:)谢谢你的快速回答。我试过了,但还是出现了同样的错误。我重新使用了原始代码。我遇到了另一个与库项目转换相关的问题,如下所述:。当我解决了这个问题后,这个错误消失了——不确定它们之间的关系,但还是要谢谢你。谢谢你的回答。:)