如果在Android Studio中,有ModuleA和ModuleB,我們希望ModuleA依賴ModuleB,運行時候可能會出現該問題,查看被依賴的ModuleB的build.gradle,裏面可以看到:
apply plugin: 'com.android.application'
這句話告訴了Gradle將ModuleB編譯稱爲application,也就是apk,這就是問題的所在;
解決方法:將上面該句改爲:
apply plugin: 'com.android.library'
此時,Gradle將編譯稱爲一個Library,也就是庫,運行之後,如果出現這個問題:Error:Library projects cannot set applicationId. applicationId is set to 'package_name' in default config.,那是因爲一個庫不允許設置applicationId,需要將builde.gradle — android — defaultConfig中的applicationId刪除;
如果說,我們ModuleB仍然需要生成apk,則我們需要將其中公共的代碼放到一個Module,作爲一個support的庫;
http://stackoverflow.com/questions/27536491/how-to-import-android-project-as-library-and-not-compile-it-as-apk-android-stud