Android 以编程方式将视图添加到自定义布局时出错(不使用充气功能)

Android 以编程方式将视图添加到自定义布局时出错(不使用充气功能),android,android-layout,layout,Android,Android Layout,Layout,我过去使用过自定义布局,但到目前为止只使用xml布局文件来描述我的子视图,并使用layoutInflater.inflate函数 这次我不想使用xml布局文件,而是希望以编程方式将所有视图添加到自定义布局中。我所做的是: public class myLayout extends FrameLayout { private Context c; private LayoutParams webViewLayoutParams; public myLayout(Cont

我过去使用过自定义布局,但到目前为止只使用xml布局文件来描述我的子视图,并使用layoutInflater.inflate函数

这次我不想使用xml布局文件,而是希望以编程方式将所有视图添加到自定义布局中。我所做的是:

public class myLayout extends FrameLayout  {
    private Context c;
    private LayoutParams webViewLayoutParams;

    public myLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
    c = context;
    initMyWebView();
    addToLayout(mywebView,mywebViewLayoutParams);
}

    private void initMyWebView() {
    Log.d("init", "init webview");
    mywebView=new WebView(c);
    mywebViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT);


}
   private void addToLayout(View view, LayoutParams params) {
    Log.d("init", "adding child view");
    this.addView(view, params);

}
}
我的自定义布局仅在我的主活动布局文件中调用

<com.mypackage.myLayout
    android:id="@+id/myLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
我想我错过了一些明显的东西,但我不知道我做错了什么。我做错什么了吗

编辑 我终于找到了问题所在。它来自admob库,我刚刚将其包含在项目中,我甚至没有使用它!从ADT17开始,外部JAR也必须在libs目录中…如果有人遇到同样的问题,希望这能有所帮助

在initMyWebView中,您为两个变量分配了新值MyWebView和mywebViewLayoutParams,但这些变量从何处启动?也许你只需要初始化这些变量


我看到您初始化了webViewLayoutParams,而不是mywebViewLayoutParams

这些都是打字错误,我将名称改为post here,只是忘了在此处添加我的。我用答案编辑了我的问题。它来自一个外部罐子。。。无论如何,谢谢!:
09-07 11:17:25.035: E/ActivityThread(17250): Failed to inflate
09-07 11:17:25.035: E/ActivityThread(17250): android.view.InflateException: Binary XML file line #18: Error inflating class com.mypackage.myLayout
09-07 11:17:25.035: E/ActivityThread(17250):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
09-07 11:17:25.035: E/ActivityThread(17250):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
etc...