我有库项目说LibProj有一个布局文件common.xml,我有一个id为relativeLayout1的RelativeLayout。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
在App Project Activity类中
public class AppStarter extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.relativeLayout1);
setContentView(layout);
我在App项目中引用了库项目,eclipse IDE没有显示任何错误,但是当我在设备中运行项目时,应用程序崩溃了。 我不知道出了什么问题......?
答案 0 :(得分:3)
我猜你必须使用LayoutInflater来扩展“common.xml”才能使用它并通过id找到它。
LayoutInflater inflater = (LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.common);
类似的东西,希望它有所帮助。
答案 1 :(得分:2)
布局必须是xml文件名(例如R.layout.common)。
答案 2 :(得分:2)
您需要添加Android库项目的Java包名称
RelativeLayout v = (RelativeLayout)
findViewById(com.sample.library.R.id.relativeLayout1);
另一个问题是如果eclipse项目已经自动打开,则Library的R文件将被Projects R文件替换
解决方法:自动禁用构建并手动将库项目的资源文件复制到主项目中 - 在相应的文件夹中
答案 3 :(得分:1)
您需要在“ res ”文件夹中创建名为“ libs ”的文件夹,将库复制到“ libs ”文件夹
答案 4 :(得分:1)
我之前有同样的问题:原因是
1)当你做
时RelativeLayout layout = (RelativeLayout) findViewById(R.id.relativeLayout1);
它不知道它应该从哪里调用你的relativeLayout1,因为它也可能与你的应用程序资源不匹配。在运行时分配ID。