Android学习应用跳转Variable Activity时崩溃求助
Android应用跳转Activity崩溃问题排查与解决
问题情况
开发Android学习应用时,从Java_Basic Activity跳转至Variable Activity时应用崩溃,重装应用后问题仍存在。
可行解决方案
- 检查Activity注册:确认
VariableActivity已在AndroidManifest.xml中注册,未注册的Activity启动时会直接崩溃。注册示例:<activity android:name=".java.Variable" android:exported="false" /> - 修正Intent初始化方式:
Java_Basic中直接覆盖Activity的成员变量intent可能引发异常,改为创建局部Intent:variable.setOnClickListener{ val intent = Intent(this, Variable::class.java) startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle()) } - 验证资源完整性:检查
Variable布局中引用的所有资源(如@drawable/bg_main、@font/el_messiri_medium、@string/variable等)是否存在、拼写是否正确,资源缺失会导致布局加载失败崩溃。 - 排除过渡动画影响:暂时注释掉过渡动画参数,仅调用
startActivity(intent),若不再崩溃则排查过渡动画的配置问题。 - 查看Logcat错误日志:通过Android Studio的Logcat工具获取崩溃时的具体异常栈信息(如
ClassNotFoundException、ResourceNotFoundException),精准定位问题根源。
相关代码参考
Java_Basic Activity代码
package com.example.myapplication.java import android.annotation.SuppressLint import android.app.ActivityOptions import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.ImageView import com.example.myapplication.R import com.example.myapplication.java.Variable class Java_Basic : AppCompatActivity() { @SuppressLint("MissingInflatedId") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_java_basic) val back: ImageView = findViewById(R.id.back) val variable: Button = findViewById(R.id.variable_btn) back.setOnClickListener { onBackPressedDispatcher.onBackPressed() } variable.setOnClickListener{ intent = Intent(this, Variable::class.java) startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle()) } } }
Variable Activity代码
package com.example.myapplication.java import android.annotation.SuppressLint import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.ImageView import com.example.myapplication.R class Variable : AppCompatActivity() { @SuppressLint("MissingInflatedId") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_variable) val back: ImageView = findViewById(R.id.back2) back.setOnClickListener { onBackPressedDispatcher.onBackPressed() } } }
Variable布局文件代码
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_main" > <ImageView android:id="@+id/back2" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginStart="16dp" android:layout_marginTop="40dp" android:src="@drawable/ic_baseline_arrow_back_242" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="ContentDescription" /> <ImageView android:id="@+id/imageView" android:layout_width="49dp" android:layout_height="49dp" android:layout_marginStart="84dp" android:layout_marginTop="28dp" android:src="@drawable/javalogo" app:layout_constraintStart_toEndOf="@+id/back2" app:layout_constraintTop_toTopOf="parent" tools:ignore="ContentDescription" /> <TextView android:id="@+id/java" android:layout_width="79dp" android:layout_height="41dp" android:layout_marginTop="36dp" android:layout_marginEnd="104dp" android:fontFamily="@font/el_messiri_medium" android:gravity="center" android:text="Java" android:textAlignment="center" android:textColor="@color/black" android:textSize="35sp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toEndOf="@+id/imageView" app:layout_constraintTop_toTopOf="parent" tools:ignore="HardcodedText" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="88dp" android:orientation="vertical" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="MissingConstraints"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:padding="10dp" android:layout_margin="10sp" app:cardBackgroundColor="#36393F" app:cardCornerRadius="10dp" app:cardElevation="8dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10sp" android:layout_marginTop="10sp" android:fontFamily="@font/el_messiri_medium" android:text="@string/variable" android:layout_gravity="center_horizontal" android:textColor="@color/white" android:textSize="24sp" android:textStyle="bold" /> <TextView android:id="@+id/intro" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="55dp" android:layout_marginBottom="10sp" android:autoLink="web" android:fontFamily="@font/alata" android:lineHeight="27dp" android:justificationMode="inter_word" tools:ignore="UnusedAttribute" android:paddingHorizontal="10dp" android:text="@string/variable_intro" android:textColor="@color/white" android:textColorLink="#9997CB" android:textSize="16sp" /> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:padding="10dp" android:layout_margin="10sp" app:cardBackgroundColor="#36393F" app:cardCornerRadius="10dp" app:cardElevation="8dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:layout_marginTop="10dp" android:fontFamily="@font/el_messiri_medium" android:text="@string/local_var" android:layout_gravity="center_horizontal" android:textColor="@color/white" android:textSize="24sp" android:textStyle="bold" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginBottom="10sp" android:autoLink="web" android:fontFamily="@font/alata" android:lineHeight="27dp" android:justificationMode="inter_word" tools:ignore="UnusedAttribute" android:paddingHorizontal="10dp" android:text="@string/localvar_explain" android:textColor="@color/white" android:textColorLink="#9997CB" android:textSize="16sp" /> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:padding="10dp" android:layout_margin="10sp" app:cardBackgroundColor="#36393F" app:cardCornerRadius="10dp" app:cardElevation="8dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/sample" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10sp" android:layout_marginBottom="10sp" android:autoLink="web" android:fontFamily="@font/alata" android:lineHeight="27sp" android:paddingHorizontal="10dp" android:text="@string/java_sample" android:textColor="@color/white" android:textColorLink="#9997CB" android:textSize="16sp" tools:ignore="UnusedAttribute" /> <androidx.cardview.widget.CardView android:layout_width="335sp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:padding="10dp" android:layout_margin="15sp" app:cardBackgroundColor="#FFF" app:cardElevation="8dp"> <TextView android:id="@+id/code1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10sp" android:layout_marginBottom="10sp" android:textSize="13sp" android:fontFamily="serif-monospace" android:lineHeight="27sp" android:paddingHorizontal="10dp" android:text="@string/localvar_code" android:textStyle="bold" android:textColor="@color/black" android:textColorLink="#9997CB" android:textIsSelectable="true" tools:ignore="UnusedAttribute" /> </androidx.cardview.widget.CardView> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </ScrollView> </androidx.constraintlayout.widget.ConstraintLayout>
内容的提问来源于stack exchange,提问作者Dev Sagar
相关产品推荐
相关产品推荐

