The following classes could not be instantiated: com.example.wifidetection.MyPaint.MyView
MyView 定義為 MyPaint 的內部類(非 static),LayoutInflater 通過反射實例化時需要無參構造函數且類可訪問。內部類隱含外部類引用,無法直接反射構造。
MyView.java,聲明 public class MyView extends View。com.example.MyPaint$MyView,易出錯)。
public class MyView extends View {
public MyView(Context context) { super(context); }
public MyView(Context context, AttributeSet attrs) { super(context, attrs); }
public MyView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
// API 21+ 需第四個構造函數
public MyView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); }
}