当尝试在使用棉花糖API 23的手机上打开我的应用程序时,我在调试器中收到此错误,我在s10上很好地安装了此应用程序,并且可以完美播放,但是在s6上也没有问题,但是没有似乎通过了闪屏或打开而几乎没有立即崩溃。我知道如何构建APK并正确安装它,但问题出在提供的代码上。任何对这个错误有一定体会的人,如果您能够伸出援手,将不胜感激。
我遇到了一个话题,该话题讨论的是可绘制图像分辨率与游戏分辨率相比,但是我不知道这有多少关系。
我的代码中的错误代码
1) *com.example.finalprojectdkjw.StartActivity.onCreate(StartActivity.java:69)*
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
2) *com.example.finalprojectdkjw.StartFragment.onCreateView(StartFragment.java:18)*
public class StartFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_start, container, false);
}
}
完整的错误代码消息
E / Android运行时:致命异常:主要 流程:com.example.finalprojectdkjw,PID:6640 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.finalprojectdkjw / com.example.finalprojectdkjw.StartActivity}:android.view.InflateException:二进制XML文件行#9:二进制XML文件行#9:错误膨胀类 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:android.view.InflateException:二进制XML文件第9行:二进制XML文件第9行:膨胀类错误 在android.view.LayoutInflater.inflate(LayoutInflater.java:539) 在android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 在androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在com.example.finalprojectdkjw.StartActivity.onCreate(StartActivity.java:69) 在android.app.Activity.performCreate(Activity.java:6237) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:android.view.InflateException:二进制XML文件第9行:膨胀类错误 在android.view.LayoutInflater.createView(LayoutInflater.java:645) 在com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 在android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 在androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在com.example.finalprojectdkjw.StartActivity.onCreate(StartActivity.java:69) 在android.app.Activity.performCreate(Activity.java:6237) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 造成原因:java.lang.reflect.InvocationTargetException 在java.lang.reflect.Constructor.newInstance(本地方法) 在android.view.LayoutInflater.createView(LayoutInflater.java:619) 在com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 在android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 在androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在com.example.finalprojectdkjw.StartActivity.onCreate(StartActivity.java:69) 在android.app.Activity.performCreate(Activity.java:6237) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 造成原因:android.content.res.Resources $ NotFoundException:资源“ com.example.finalprojectdkjw:drawable / startmenuimg”(7f06009b)不是Drawable(颜色或路径):TypedValue {t = 0x1 / d = 0x7f06009b a =- 1 r = 0x7f06009b} 在android.content.res.Resources.loadDrawableForCookie(Resources.java:2602) 在android.content.res.Resources.loadDrawable(Resources.java:2540) 在android.content.res.TypedArray.getDrawable(TypedArray.java:870) 在android.view.View。(View.java:3948) 在android.view.ViewGroup。(ViewGroup.java:573) 在android.widget.LinearLayout。(LinearLayout.java:203) 在android.widget.LinearLayout。(LinearLayout.java:199) 在android.widget.LinearLayout。(LinearLayout.java:195) 在java.lang.reflect.Constructor.newInstance(本地方法) 在android.view.LayoutInflater.createView(LayoutInflater.java:619) 在com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 在android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 在androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在com.example.finalprojectdkjw.StartActivity.onCreate(StartActivity.java:69) 在android.app.Activity.performCreate(Activity.java:6237) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
XML(ACTIVTY_START)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context="com.example.finalprojectdkjw.StartActivity">
<fragment android:name="com.example.finalprojectdkjw.StartFragment"
android:id="@+id/startFragment"
android:layout_width="match_parent"
android:layout_height="match_parent">
</fragment>
</LinearLayout>
XML(FRAGMENT_START)
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StartFragment">
<!-- TODO: Update blank fragment layout -->
<LinearLayout
android:id="@+id/mainMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/startmenuimg"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<TextView
android:layout_width="300dp"
android:layout_height="100dp"
android:background="@drawable/title"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="130dp"
android:orientation="horizontal"
android:layout_gravity="center">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginBottom="60dp"
android:src="@drawable/packyak" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/instruction1"
android:textSize="32sp"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/instruction2"
android:textSize="32sp"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">
<TableRow android:gravity="center_vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/grassclean" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="@string/cleanGrassRule"
android:textSize="22sp"
android:textStyle="bold"/>
</TableRow>
<TableRow
android:layout_marginTop="20dp"
android:gravity="center_vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/grassdirty" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="@string/dirtyGrassRule"
android:textSize="22sp"
android:textStyle="bold" />
</TableRow>
<TableRow android:gravity="center_vertical">
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:src="@drawable/glowarrowcropped" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="@string/gameOverRule"
android:textSize="22sp"
android:textStyle="bold"/>
</TableRow>
</TableLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_marginBottom="5dp">
<Button
android:id="@+id/btnStartGame"
android:layout_width="100dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:background="@drawable/startimg" />
<Button
android:id="@+id/btnScoreboard"
android:layout_width="195dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:layout_marginBottom="5dp"
android:background="@drawable/high_score" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<Button
android:id="@+id/mutebutton"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/playt"/>
<!-- android:onClick="play" />-->
<!-- <Button-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="pause"-->
<!-- android:onClick="pause"/>-->
<!-- <Button-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="Mute"-->
<!-- android:onClick="stop"/>-->
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/highScoreMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/scrollimg"
android:visibility="gone">
<ImageView
android:layout_width="350dp"
android:layout_height="100dp"
android:src="@drawable/high_score"
android:layout_gravity="center"
android:layout_marginTop="30dp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<Button
android:id="@+id/btnScoreEasy"
android:layout_width="110dp"
android:layout_height="40dp"
android:background="@drawable/easyscores"
android:layout_marginEnd="20dp"/>
<Button
android:id="@+id/btnScoreHard"
android:layout_width="110dp"
android:layout_height="40dp"
android:layout_marginStart="20dp"
android:background="@drawable/hardscores"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Place"
android:textStyle="bold"
android:textSize="30sp"
android:textAlignment="textStart"
android:paddingStart="30dp"
android:layout_marginStart="20dp"
android:textColor="@color/scoreColor"
android:layout_weight="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"
android:textStyle="bold"
android:textSize="30sp"
android:textAlignment="center"
android:textColor="@color/scoreColor"
android:layout_weight="4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Score"
android:textStyle="bold"
android:textSize="30sp"
android:textAlignment="textEnd"
android:paddingEnd="30dp"
android:layout_marginEnd="20dp"
android:textColor="@color/scoreColor"
android:layout_weight="1"/>
</LinearLayout>
<!--Easy mode-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/easyScoreboardRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:visibility="gone">
</androidx.recyclerview.widget.RecyclerView>
<!--Hard mode-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/hardScoreboardRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:visibility="visible">
</androidx.recyclerview.widget.RecyclerView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="50dp"
android:orientation="vertical">
<Button
android:id="@+id/btnTryAgain"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/retryimg"
android:visibility="visible"/>
<Button
android:id="@+id/btnHomeScreen"
android:layout_width="100dp"
android:layout_height="35dp"
android:background="@drawable/homeimg"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/difficultyMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/scrollimg"
android:weightSum="10"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="6">
<Button
android:id="@+id/btnReturn"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/btn_return"
android:layout_gravity="start"/>
<ImageView
android:layout_width="300dp"
android:layout_height="100dp"
android:src="@drawable/difficulty"
android:layout_gravity="center"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="50dp">
<Button
android:id="@+id/btnEasy"
android:layout_width="150dp"
android:layout_height="200dp"
android:layout_margin="5dp"
android:background="@drawable/easy"/>
<Button
android:id="@+id/btnHard"
android:layout_width="150dp"
android:layout_height="200dp"
android:layout_margin="5dp"
android:background="@drawable/hard"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
答案 0 :(得分:1)
更改
<fragment android:name="com.example.finalprojectdkjw.StartFragment"
到
<fragment class="com.example.finalprojectdkjw.StartFragment"
尽管android:name
和class
属性被认为是可互换的,但是由于某些原因,android:name
在某些设备上不起作用。
编辑
可能有多个原因导致此错误发生。如果上述解决方案不起作用,请尝试将片段onCreatView()
的整个内容括在try catch块中,并记录异常错误,如下所示。它会给您更合理的错误信息。
public View onCreateView(LayoutInflater inflater, ViewGroup contnr, Bundle savedInstSt) {
try {
// ...
return inflater.inflate(R.layout.fragment_start, container, false);
} catch (Exception e) {
Log.e(TAG, "onCreateView", e);
throw e;
}
}