问题 一、
按照我们的正常思维,如果我的项目编译和运行都是成功的那么签名打包也会成功,但是并不是这样的
public VideoFragment(VideoInterface activity, Context context) { this.activity = activity; this.context = context; } public VideoFragment() { }这是在一个fragment中,写了有参构造和无参构造,但是官方推荐是不建议在fragment中这样写有参的,如果这样写就会出错,但是这个错误在编译运行时是允许的,在签名打包时就不允许了。错误提示我就不列出了,直接给解决的办法,
@SuppressLint("ValidFragment") public class VideoFragment extends Fragment implements VideoInterface在这个类的前面加一个这个
@SuppressLint("ValidFragment")
这样的话签名也没问题了。
问题 二、
如果说你的项目中对添加了一个或者多个依赖,可以正常编译运行,但签名打包也不行,这个问题产生的原因可能是jar包重复了,如果知道是哪个重复就很好解决了,如果不知道的法提供一个简单的方法,在你的项目下面的build.gralde下面加上这个
lintOptions { checkReleaseBuilds false abortOnError false }这样做有一个好处,就是如果你的项目可以正常编译运行,但是打包出现问题,加这个的话就会正常。