一:
新建一个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);
}