主项目和 aar 模块之间的依赖冲突 - Volley

Dependency clashes between main project and aar module - Volley

我在当前的应用程序中使用 Volley 库进行联网。

依赖性:

compile 'com.mcxiaoke.volley:library:1.0.19'

我已经为我的 Imageloader 提供了一个自定义实现来覆盖我的服务器所需的一些 headers。

代码如下:

public class MyImageLoader extends ImageLoader {


    public MyImageLoader(RequestQueue queue, ImageCache imageCache) {
        super(queue, imageCache);
    }

    @Override
    protected Request<Bitmap> makeImageRequest(String requestUrl, int maxWidth, int maxHeight,
                                           ImageView.ScaleType scaleType, final String
                                                   cacheKey) {

         return new ImageRequest(requestUrl, new Response.Listener<Bitmap>() {
        @Override
        public void onResponse(Bitmap response) {
            onGetImageSuccess(cacheKey, response);
        }
    }, maxWidth, maxHeight, scaleType, Bitmap.Config.RGB_565, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            onGetImageError(cacheKey, error);
        }
    }) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> params = new HashMap<>();
            //add my params
            return params;
        }
    };
}

}

我也在使用 Linkedin sdk aar 进行 Linkedin 集成。

依赖片段:

compile(name:'linkedin-sdk-debug', ext:'aar')

repositories{
    flatDir{
        dirs 'libs'
    }
}

这个 aar 还引用了它自己的 volley 版本,它是 Linkedin SDK 项目中的一个 jar。

构建我的项目很好,但是当我 运行 它时,我遇到了一堆错误:

以下错误:

Error:(17, 9) 错误:class ImageRequest 中的构造函数 ImageRequest 无法应用于给定类型; 必需:String、Listener、int、int、Config、ErrorListener

找到:String,Listener,int,int,ScaleType,Config,ErrorListener 原因:实际和形式参数列表的长度不同

Error:(40, 16) 错误:class ImageRequest 中的构造函数 ImageRequest 无法应用于给定类型; 必需:String,Listener,int,int,Config,ErrorListener 发现: String,>,int,int,ScaleType,Config, 原因:实际和形式参数列表的长度不同

我怀疑这可能是由于不同 volley 代码版本之间的冲突。

有没有人遇到过这种情况?

在 linkedin zip 中,你在一个单独的模块中有截击,所以我建议你让你的项目有 3 个模块:

1) 您的代码

2) 链接代码

3) - 1) 和 2) 中的公共 volley 代码和编译项目(':volley') 要么 - 在 1) 和 2)

中使用编译 'com.android.volley:volley:1.0.0'

注意,如果你想坚持截击,最好使用

com.android.volley:volley

作为

com.mcxiaoke.volley:library

不再维护。