Android工程A依赖B,B依赖C

最后更新于:2022-04-01 14:27:02

闲来无事,做了个实验。大致思路:A、B、C是三个较为庞大的工程。A工程(开源)需要用到B工程(开源),而又希望在B工程(开源)中引用C工程(开源)。也就是A是真个项目框架,B是其中一个模块,而在B中又希望集成C开源工程。 先看效果图: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-06_5704ccea0c923.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-06_5704ccea228a7.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-06_5704ccea36980.jpg) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-06_5704ccea46b39.jpg) 在开始之前,请先参照[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,单层设置,单层依赖 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-06_5704ccea619e1.jpg) 设置清单文件时,A中要包含B和C中的所有清单文件: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-06_5704ccea89b5b.jpg) 在工程中如果出现错误,可能是资源id出现冲突,所以最好是每个项目的资源ID要个性化单独设置。还要记得clean这一招。总之,尝试一下吧,快速集成开源项目像上面这个demo一样,还是很让人愉快的。
';