Android工程A依赖B,B依赖C
最后更新于:2022-04-01 14:27:02
闲来无事,做了个实验。大致思路:A、B、C是三个较为庞大的工程。A工程(开源)需要用到B工程(开源),而又希望在B工程(开源)中引用C工程(开源)。也就是A是真个项目框架,B是其中一个模块,而在B中又希望集成C开源工程。
先看效果图:




在开始之前,请先参照[http://blog.csdn.net/songshimvp1/article/details/50015887](http://blog.csdn.net/songshimvp1/article/details/50015887)——[Android 中一个工程引用另一个工程](http://blog.csdn.net/songshimvp1/article/details/50015887)
完成B和C的连接。
C工程很简单,直接创建CMainActivity,然后改一下textView中的文字即可。
B工程,创建BMainActivity,然后设置textView和button。再设置BMainActivity主文件:
~~~
public class BMainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b_main);
findViewById(R.id.buttonBC).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent cIntent=new Intent(BMainActivity.this,CMainActivity.class);
startActivity(cIntent);
}
});
}
........
~~~
参照上述网址[http://blog.csdn.net/songshimvp1/article/details/50015887](http://blog.csdn.net/songshimvp1/article/details/50015887)连通B和C。
接下来是A。仍然是直接创建AMainActivity,然后设置textView和button。再设置AMainActivity主文件:
~~~
public class AMainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_amain);
findViewById(R.id.buttonAB).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent bIntent=new Intent(AMainActivity.this,BMainActivity.class);
startActivity(bIntent);
}
});
}
..........
~~~
设置依赖项时,是单层依赖,A中不去设置C,单层设置,单层依赖

设置清单文件时,A中要包含B和C中的所有清单文件:

在工程中如果出现错误,可能是资源id出现冲突,所以最好是每个项目的资源ID要个性化单独设置。还要记得clean这一招。总之,尝试一下吧,快速集成开源项目像上面这个demo一样,还是很让人愉快的。