首先我知道这个错误是asked已经,但我的情况有点不同:
我正在分发 SDK(Android 库项目)。我的 SDK 需要其他东西(播放服务、支持 v4、gson jar 等)Picasso,所以我在我的 gradle.build
中有:
编译 'com.squareup.picasso:picasso:2.5.2'
现在,当我测试将生成的 aar
文件从此库项目导入到我的示例应用程序时 - 一切正常。
问题是我的客户在将 aar
文件导入他的应用程序项目时,试图在他的应用程序中启动与我的 SDK 功能相关的 Activity
出现上述错误:
Failed resolution of: Lcom/squareup/picasso/Picasso:
java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.Picasso" on path: DexPathList[[zip file "/data/app/com.package.name-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
注意:我在这个 Activity
里面确实需要 Picasso。我们都使用 Android Studio。
我的问题是哪里出了问题?在我的图书馆里?客户以何种方式集成aar
?
- 客户需要使用我所有的 SDK 依赖修改他的
build.gradle
,因为我没有通过maven
分发 - 并且还将我的
Activities
包含在他的manifest.xml
中
- 也许
multidex
在这里有事要做? - 可能是
play services
的版本? - 可能
支持 lib V4
VS 的版本。appcompat V7
? - 在客户编译的和我编译的之间的依赖版本中串通?
gradle.build
中依赖项的顺序?
最佳答案
您必须禁用“即时运行”
关于android-gradle-plugin - 安卓 : Didn't find class "Picasso" on path: DexPathList (Failed resolution of: Picasso),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33831340/