我用我的圖書館這對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(完成)」 –