一:
新建一個Android工程只需要把IsLibray設置打上勾就行了
添加好後其他工程就可以使用該工程裏邊的東西了,可以直接啓動依賴工程裏邊的activity,添加fragment等
注意:
A爲普通android工程B爲設置了is Library的工程,B中有使用R.id,當A工程引用了B工程時會在A工程的gen目錄中生成B的R文件,裏面也包含了A的R文件中的內容,但是當B的id 定義在layout文件中時需要注意layout的名稱,如果A下有個main.xml的layout,B下也有個main.xml的layout,那麼A編譯時就會將B的main.xml中的所有id忽略,導致混淆報錯提示 找不到id
所有問題出在,被引用的項目和當前項目之間的資源衝突。假如當前項目存在與被引用項目相同的資源(除了layout外
,還包括圖片,styles等等)就會默認使用當前項目的資源,完全忽略被引用項目的資源
所以依賴工程的命名,最好統一加一個前綴~~
二:Library工程調用主工程
直接不用調用可以使用反射調用, 比如fragment跳轉:
- public <T> void RelInvoke(Class<T> t,Object _ma) throws Exception
- {
- t.getDeclaredMethod("switchContent",Fragment.class).invoke(_ma,new ShipScheFragment());//參數爲Fragment
- }
- Object ma = getActivity();
- try {
- RelInvoke(ma.getClass(),ma);
- } catch (Exception e) {
- System.out.println("反射調用方法報錯:"+e);
- }