我用我的图书馆这对ExoStreamPlayer依赖的AAR文件相关。如果我将库的源代码作为模块包含在android studio项目中,但是如果我包含模块/库的AAR文件,那么我的应用工作良好,那么我的应用在运行时会抛出以下异常。使用我的图书馆的AAR文件,该文件对其他图书馆
java.lang.NoClassDefFoundError: com.ooyala.android.player.exoplayer.ExoStreamPlayer at com.ooyala.android.player.ExoMoviePlayer.createStreamPlayer(ExoMoviePlayer.java:12) at com.ooyala.android.player.MoviePlayer.init(MoviePlayer.java:50) at com.ooyala.android.OoyalaPlayerContextSwitcher.createAndInitPlayer(OoyalaPlayerContextSwitcher.java:107) at com.ooyala.android.OoyalaPlayer.prepareContent(OoyalaPlayer.java:1469) at com.ooyala.android.OoyalaPlayerContextSwitcher.processExitAdModes(OoyalaPlayerContextSwitcher.java:182) at com.ooyala.android.OoyalaPlayerContextSwitcher.processAdModes(OoyalaPlayerContextSwitcher.java:162) at com.ooyala.android.OoyalaPlayerContextSwitcher.startVideoWorkflow(OoyalaPlayerContextSwitcher.java:61) at com.ooyala.android.OoyalaPlayer.onCurrentItemChangeComplete(OoyalaPlayer.java:697) at com.ooyala.android.OoyalaPlayer.access$200(OoyalaPlayer.java:68) at com.ooyala.android.OoyalaPlayer$1$1.run(OoyalaPlayer.java:510) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.ja
更新 @ CommonsWare我想,我使用的是第二种方法。您可以在我的图书馆渐变中看到exoplayer的依赖关系。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.exoplayer:exoplayer:r1.5.7'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-annotations:25.2.0'
compile 'android.arch.lifecycle:runtime:1.0.0-alpha3'
compile 'android.arch.lifecycle:extensions:1.0.0-alpha3'
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha3'
testCompile 'junit:junit:4.12'
}
请解释一下究竟** **你如何“包括模块/库的AAR文件”。例如,你可以提供一个[mcve]来演示你如何做到这一点。 – CommonsWare
@CommonsWare我遵循https://developer.android.com上的指导原则,它们是: “添加已编译的AAR(或JAR)文件(该库必须已经生成): 1)单击File> New> New Module 。 2)单击导入.JAR/.AAR包,然后单击下一步。 3)输入编译AAR或JAR文件的位置,然后单击Finish(完成)” –