【问题标题】:Android studio application install issue [duplicate]Android Studio应用程序安装问题[重复]
【发布时间】: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 的图像可用于您支持的所有版本。

标签: android android-studio


【解决方案1】:

改变

<fragment android:name="com.example.finalprojectdkjw.StartFragment"

<fragment class="com.example.finalprojectdkjw.StartFragment"

虽然android:nameclass 属性被认为是可互换的,但由于某些原因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;
    }
}

【讨论】:

  • 它没有用。我理解为什么它在某些情况下会起作用。生病暂时离开它并尝试 try-catch 块
  • return inflater.inflate(R.layout.fragment_start, container, false);是突出显示的内容
  • 你的意思是突出显示。你的意思是有语法错误吗?你有没有在 catch 块中放一个 throw 语句,否则它会说 missing return statement
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 2017-11-28
  • 1970-01-01
  • 2021-12-05
  • 2020-01-09
相关资源
最近更新 更多