You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Retrofit2.4.0新手求助:构造Retrofit时提示访问权限错误

Retrofit 2.4.0 构造实例报错解决办法

嘿,我刚碰到和你一模一样的问题!作为Retrofit新手用2.4.0版本时,写ApiClient可踩过这个小坑。先理清楚你的情况:

你的原始代码

public class ApiClient { 
    public static final String BASE_URL = "https://api.coinmarketcap.com/v1/"; 
    public static Retrofit retrofit = null; 
    public static Retrofit getApiClient (){ 
        if (retrofit == null){ 
            retrofit = new Retrofit().Builder.baseUrl(BASE_URL). addConverterFactory(GsonConverterFactory.create()).build(); 
        } 
        return retrofit; 
    } 
}

遇到的错误

is not public in 'retrofit2.Retrofit' , cannot be accessed from outside

问题原因&解决办法

其实问题就出在Retrofit.Builder的调用方式上!你写的new Retrofit().Builder是先尝试创建Retrofit实例,再访问它的Builder内部类,但Retrofit的构造方法是私有的,外部根本没法直接new Retrofit(),所以才会抛出这个访问权限错误。

正确的做法是直接调用Retrofit.Builder这个静态内部类的构造方法——把new Retrofit().Builder改成new Retrofit.Builder(),然后链式调用配置方法就可以了。

修正后的完整代码

public class ApiClient { 
    public static final String BASE_URL = "https://api.coinmarketcap.com/v1/"; 
    public static Retrofit retrofit = null; 
    public static Retrofit getApiClient (){ 
        if (retrofit == null){ 
            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build(); 
        } 
        return retrofit; 
    } 
}

这样改完就能正常创建Retrofit实例啦,亲测有效!

内容的提问来源于stack exchange,提问作者Hadi Ahmadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:50:17