Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在android中膨胀布局_Android - Fatal编程技术网

无法在android中膨胀布局

无法在android中膨胀布局,android,Android,mainactivity.xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dime

mainactivity.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:background="#ff0"
    android:id="@+id/myframe"
    >


    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left|top"
        android:background="#00f"
        />
</FrameLayout>
我得到的错误是“在附加的堆栈跟踪中获取了一个资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。
java.lang.Throwable:未调用显式终止方法“close”

问题在于,在设置内容视图之前,您试图访问该视图。请尝试以下操作

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 FrameLayout frameLayout = (FrameLayout)findViewById(R.id.myframe);
 LayoutInflater layoutInflater = getLayoutInflater();
 View view = layoutInflater.inflate(R.layout.sublayout, null);
 frameLayout.addView(view);
 }

您能否发布完整的stacktraceFrameLayout frameLayout=(frameLayout)findViewById(R.id.myframe);setContentView(R.layout.activity_main)在设置视图内容之前您会发现什么?膨胀的目的是什么?08-28 16:07:32.177 3083-3092/?E/S模式﹕ 已在附加的堆栈跟踪中获取资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。java.lang.Throwable:android.os.ParcelFileDescriptor.(ParcelFileDescriptor.java:180)中的dalvik.system.CloseGuard.open(CloseGuard.java:184)中未调用显式终止方法“close”。在android.os.ParcelFileDescriptor$1.createFromParcel(ParcelFileDescriptor.java:916)中,它尝试放置setcontentView()最后。但还是一样error@BrightVarghese将setContentView放在下面的oncreate方法上(即super.oncreate(savedInstanceState)下面);是否必须在代码中添加setContentView()?我也尝试过不使用此方法。但是相同的错误setContentView与您的代码无关。您需要在调用super.oncreate()后立即调用它为了设置稍后将用于处理findViewById()的视图,我根据您的建议进行了尝试。这很有效。非常感谢
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LayoutInflater layoutInflater = getLayoutInflater();
        View view = layoutInflater.inflate(R.layout.sublayout, null);
        FrameLayout frameLayout = (FrameLayout)findViewById(R.id.myframe);
        setContentView(R.layout.activity_main);
        frameLayout.addView(view);
    }


}
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 FrameLayout frameLayout = (FrameLayout)findViewById(R.id.myframe);
 LayoutInflater layoutInflater = getLayoutInflater();
 View view = layoutInflater.inflate(R.layout.sublayout, null);
 frameLayout.addView(view);
 }