Android 如果原始资源文件夹不为空,则setContentView()返回null
我有一个主要的活动,开始一个孩子的活动。在childsAndroid 如果原始资源文件夹不为空,则setContentView()返回null,android,android-layout,Android,Android Layout,我有一个主要的活动,开始一个孩子的活动。在childsonCreate()中,我调用: setContentView(R.layout.console); TextView tv = (TextView)findViewById(R.id.console); 只要我的原始资源文件夹是空的,这就可以找到。当我将任何文件放入其中时,findviewbyd()返回null。我不知道为什么原始文件夹中的文件与找不到布局资源之间存在冲突。我尝试使用NetBeans和Eclipse构建,R.java包含所
onCreate()
中,我调用:
setContentView(R.layout.console);
TextView tv = (TextView)findViewById(R.id.console);
只要我的原始资源文件夹是空的,这就可以找到。当我将任何文件放入其中时,
findviewbyd()
返回null
。我不知道为什么原始文件夹中的文件与找不到布局资源之间存在冲突。我尝试使用NetBeans和Eclipse构建,R.java包含所有必需的条目,并且没有ID冲突。如果我在raw文件夹中添加了一个文件,那么文件ID将正确地添加到R.java中,其他内容不会发生任何更改
在LogCat中,当我尝试使用TextView tv时,我得到一个空指针异常。当我在日志声明/初始化后立即将tv的值写入日志时,tv是空引用
@Override
protected void onCreate(Bundle savedInstanceState)
{
Log.i("Calling onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.console);
TextView tv = (TextView)findViewById(R.id.console);
Log.i("tv = " + tv);
}
这似乎是一个问题,因为该活动是由具有
Intent intent = new Intent(getContext(), ConsoleActivity.class);
int requestCode = Activity.RESULT_OK;
startActivityForResult(intent, requestCode);
console活动的布局文件console.xml如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/console"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</ScrollView>
</LinearLayout>
</LinearLayout>
我找到了一个解决办法。代码是库的一部分。在库项目中,我没有包含原始资源目录,因为我不使用库中的原始资源。现在我用库项目中的一些(虚拟)文件创建了一个原始目录,并且。。。 在应用程序项目中添加包含文件的原始目录时出现的空指针错误奇迹般地消失了
无论如何,感谢您对我的帮助。请查看您的LogCat输出,并在您的问题中发布任何错误/异常。每当您从
findViewById()
(null
或错误的对象)得到奇怪的结果时,请清理您的项目。在Eclipse中,这是主菜单中的Project | Clean。从Ant,它是Ant clean
。有时R.java
文件与编译后的其他类不同步。听起来可能有构建问题。您是否已更新到最新的ADT?清理和重建项目?