在AndroidManifest.xml中,<original-package>与<manifest package=...>中的区别:
<original-package>:应用源码所在包
<manifest package=...>:应用运行时的进程名,同样也是R.java所在包名
因此,上述两者名称可以不同,一般不写<original-package>,但若写,则需要注意以下几点:
1、若<manifest package=...>与<original-package>的name值相同,配置组建时android:name属性值可使用".ClassName"形式。
2、若<manifest package=...>中的名称不是源码包名,则在<activity><service><receiver><provider>中的android:name属性需要写完整的包名,".ClassName"形式无效。且此时,在代码中引用R.java时,使用的也是该名称,具体请看代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.process"
android:versionCode="1"
android:versionName="1.0" >
<original-package android:name="com.test.testapp" />
......
从上述代码可知,R.java在"com.test.process"包中,而项目源码包"com.test.testapp",因此,在代码中引用R.java时,必须使用import com.test.process.R;
原文参考:http://blog.csdn.net/wh_19910525/article/details/8203968