Android app测试没有问题,导出apk却问题百出

打包APK报错:Error:Error: This fragment should provide a default constructor (a public constructor with no arguments) (com.cervin.morgan.seachart.fragment.RightFragment) [ValidFragment]

琢磨了好久。也看了官方给出的关于fragment的解释以及写法。包括网上很多朋友都建议用官方API的写法。

但是我想说的是,如果你的参数是string  int  char  等类型,没问题,但是如果不是呢?如果是个view呢?怎么办?

如下:我列出问题的解决方法:

初始状态,我传入的参数是一个mapview类型,显然用bundle是不行的,报出需要一个无参的构造方法。没关系,加上,

public RightFragment(MapView mMapView) {
		mapView = mMapView;
		baseMapLayer = mapView.getBaseMapLayer();

	}



加了一个无参的构造函数后,继续打包,又报出需要setArguments方法,但是要用set,明显我的参数类型是不可以的

public RightFragment(MapView mMapView) {
		mapView = mMapView;
		baseMapLayer = mapView.getBaseMapLayer();

	}
	public RightFragment(){}




我的解决方法是在类前面加一句

@SuppressLint("ValidFragment")

同时把无参的构造删掉,重新打包,哈哈,没问题了!

@SuppressLint("ValidFragment")
public class RightFragment extends BaseFragment implements OnClickListener {
	private WidgetLayer widgetLayer;
	private BaseMapLayer baseMapLayer;
	private MapView mapView;
	private Button mPlainButtn;
	private Button mSymbolizedButton;
	private List<Item> mlist = new ArrayList<Item>();
	private List<Item> mmlist = new ArrayList<Item>();
	private List<Item> mDisplayFloate = new ArrayList<Item>();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值