我有一个带有版本属性的android清单文件。但是,当我从我的代码中读取这些属性时,即使我更改了清单文件中的值,它也会返回相同的值。我正在编写以下代码,请告诉我代码中的错误。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_about, container, false);
TextView txtVersion = (TextView) rootView.findViewById(R.id.about_text);
FragmentActivity activity = getActivity();
final PackageManager packageManager = activity.getPackageManager();
try{
if(packageManager != null){
PackageInfo packageInfo = packageManager.getPackageInfo(activity.getPackageName(),0);
txtVersion.setText(packageInfo.versionName); // get same value even make changes in manifest file.
}
}
catch (NameNotFoundException ex){
Log.e("tag", ex.getMessage());
}
return rootView;
}
答案 0 :(得分:0)
在您的代码中,您可以:
txtVersion.setText(packageInfo.versionName); // get same value even make changes in manifest file.
以后几行:
txtVersion.setText("");
这将清除TextView
,不是吗? :)
因此,如果packageManager
不为空,您将更改TextView
的值,然后退出try-catch
,然后清除TextView
答案 1 :(得分:0)
这是你的try / catch代码:
try{
if(packageManager != null){
PackageInfo packageInfo = packageManager.getPackageInfo(activity.getPackageName(),0);
txtVersion.setText(packageInfo.versionName); // get same value even make changes in manifest file.
}
}
catch (NameNotFoundException ex){
Log.e("tag", ex.getMessage());
}
txtVersion.setText("");
首先检查if(packageManager != null)
然后txtVersion.setText(packageInfo.versionName);
==>设置了txtVersion
然后捕获异常catch (NameNotFoundException ex)
最后那些txtVersion.setText("");
==> txtVersion为空
所以只需删除txtVersion.setText("");
即可按您的意愿使用
答案 2 :(得分:0)
答案 3 :(得分:0)
刚遇到这个问题并找到了解决方案。
如果您使用Android Studio和Gradle,则Gradle会覆盖versionCode
和versionName
。
要更改此值,请在build.gradle