我使用Android Studio 1.0 RC 1,而且我在xml文件中浏览视图类时遇到问题。 我有一个扩展GridView的视图文件,它包含所有3个构造函数:
package app.views;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
public class ImageSeGridView extends GridView {
public ImageSeGridView(Context context) {
super(context);
init();
}
public ImageSeGridView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public ImageSeGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
//....
}
}
我在xml类中添加了这个视图:
<app.views.ImageSeGridView
android:id="@+id/image_search_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
我在编译时没有得到任何抱怨,但在运行时我收到以下错误:
android.view.InflateException: Binary XML file line #13: Error inflating class app.views.ImageSeGridView
at android.view.LayoutInflater.createView(LayoutInflater.java:626)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
我不知道如何解决这个问题。例如,使用IntelliJ IDEA 13时不会发生这种情况,仅在使用Android Studio时才会发生。
答案 0 :(得分:1)
我不确定你的目标是21,但这是我最近一直在做的事情。
public CustomView(Context context) {
super(context);
init();
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
@TargetApi(21)
public CustomView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
快速编辑:另外,我在我的布局中使用了完全限定的包名称 - com.company.appname.views.widgets.customview等。我不确定这是否是您的包名称的全部范围