Android获取versionCode总是1的解决,包括versionName总是1.0也可以解决

最近开发遇到要自动更新,那就涉及到读取版本号,结果按照广大的给androidmanifest xml文件添加versioncode和versionname的办法,怎么修改都没用,读取出来的都是1和1.0,我还以为方法写错,各种百度,发现和我遇到一样的问题的大有人在,但是按照他们的方法都没有解决。

后来在project structure中的flavors中找到了版本和版本号的字段,改这个,再读取就正确啦。记录下来给以后像我这样的新人少走点弯路吧。顺便发俩我改的读取版本号的函数吧。

    //获取版本
    private String getVersionName() throws Exception
    {
        //获取版本号,对应 Project Structure 中 Flavors 下的 Version Name
        //getPackageName()是你当前类的包名,0代表是获取版本信息
        return getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
    }

    //获取版本号
    private int getVersionCode()  throws Exception
    {
        //获取版本号,对应 Project Structure 中 Flavors 下的 Version Code
        //getPackageName()是你当前类的包名,0代表是获取版本信息
        return getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
    }