【发布时间】:2019-11-30 16:46:10
【问题描述】:
尝试在带有棉花糖 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/AndroidRuntime: 致命异常: main 进程: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(Native Method) 在 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)不是可绘制对象(颜色或路径):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(Native Method) 在 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>
【问题讨论】:
-
StartFragment的布局有问题。 -
你能发布xml吗?
-
为 activity 和 fragment_start 发布的 XML。
-
宾果游戏:
Resources$NotFoundException: Resource "com.example.finalprojectdkjw:drawable/startmenuimg" (7f06009b) is not a Drawable (color or path)。您正在测试哪个 Android 版本?对于较新版本,您是否可能仅在res/drawable-v??/文件夹中拥有startmenuimg可绘制对象? -
您将它们放在相关文件夹中。例如,不带
v??修饰符的res/drawable*/文件夹将适用于 24 之前的所有其他版本。请确保您有具有这些 ID 的图像可用于您支持的所有版本。