Process: com.chance.ad.demo, PID: 28013
java.lang.AbstractMethodError: abstract method "void com.android.volley.Response$ErrorListener.onErrorResponse(com.android.volley.VolleyError)"
at com.android.volley.toolbox.NetworkImageView$1.onErrorResponse(NetworkImageView.java:164)
at com.android.volley.toolbox.ImageLoader$4.run(ImageLoader.java:503)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
这个bug 是没有把volley包和sdk 打在一起,在app中同时引用sdk的jar和volley就报出的错了,但把sdk和volley包打到一个包里给app用就好了,如下是打包的 gradle 截取 :
dependencies { provided 'com.android.support:support-v4:+' provided files('libs/org.apache.http.legacy.jar') compile files('libs/volley_original.jar') } def buildTime() { return new Date().format("yyyy_MM_dd_hh_mm_ss") } task deleteBuild(type: Delete) { delete jarDestinationPath + SDK_NAME + '.jar' delete jarDestinationPath + SDK_NAME + '_proguard.jar' delete sdkIntermediate } build.mustRunAfter deleteBuild task makeJar(type: Jar, dependsOn: ['deleteBuild', 'build']) { from zipTree(zipFile) // from zipTree(file('libs/org.apache.http.legacy.jar')) from zipTree(file('libs/volley_original.jar')) from fileTree(dir: 'src/main', includes: ['assets/**']) // 打包assets目录下的所有文件 baseName = SDK_NAME destinationDir = file(jarDestinationPath) doLast { tasks.proguardJar.execute() } }