Android Studio Giraffe中TextView显示应用版本失败,求正确代码
Android Studio Giraffe 显示应用版本到TextView的正确实现
以下是排查问题并实现的具体步骤:
1. 确认BuildConfig导入正确
确保导入的是你项目自身的BuildConfig,而非系统或其他库的:
// 替换成你的项目包名 import com.your.app.package.BuildConfig;
2. 检查布局中的TextView ID
确认布局文件(如activity_main.xml)里的TextView ID确实是version:
<TextView android:id="@+id/version" android:layout_width="wrap_content" android:layout_height="wrap_content" />
3. 正确的Java实现代码
在Activity的onCreate方法中添加以下代码(注意判空避免空指针):
import android.os.Bundle; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.your.app.package.BuildConfig; // 替换为你的包名 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView versionTv = findViewById(R.id.version); if (versionTv != null) { versionTv.setText(BuildConfig.VERSION_NAME); } } }
4. 若BuildConfig.VERSION_NAME仍无法获取
检查模块级build.gradle(通常是app/build.gradle)中的版本配置,确保defaultConfig里声明了versionName:
android { defaultConfig { // 其他配置项 versionName "1.0.0" // 自定义你的版本名 versionCode 1 } }
配置完成后点击Android Studio顶部的Sync Now按钮同步Gradle项目。
Kotlin版本实现
如果使用Kotlin,代码如下:
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import com.your.app.package.BuildConfig // 替换为你的包名 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val versionTv = findViewById<TextView>(R.id.version) versionTv?.text = BuildConfig.VERSION_NAME } }
内容的提问来源于stack exchange,提问作者Abdi
相关产品推荐
相关产品推荐

