0

两周前我完成了我的第一个 Android 应用程序并在 Play Store 上发布。当我查看 Android Vitals(Anrs&Crash) 时,我看到一些针对不同类型 Android 设备的崩溃。但我无法在真实设备或模拟器上重现此崩溃。

Play 商店的崩溃日志

android.view.InflateException:在 com.ehliyetcepte.ehliyet.sinav.sorulari.Adapter.MenuAdapter 的 android.view.LayoutInflater.inflate (LayoutInflater.java:429) 的 android.view.LayoutInflater.inflate (LayoutInflater.java:551) .onCreateViewHolder (MenuAdapter.java:11) 在 com.ehliyetcepte.ehliyet.sinav.sorulari.Adapter.MenuAdapter.onCreateViewHolder (MenuAdapter.java:11) 在 androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder (RecyclerView.java) 在androidx.recyclerview.widget.RecyclerView$Adapter.getItemCount (RecyclerView.java) 在 androidx.recyclerview.widget.RecyclerView$Adapter.getItemViewType (RecyclerView.java) 在 androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java: 64) 在 androidx.recyclerview.widget.RecyclerView$Recycler。getViewForPosition (RecyclerView.java:5) 在 androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition (RecyclerView.java:5) 在 androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next (LinearLayoutManager.java:5) 在 androidx.recyclerview .widget.GridLayoutManager.assignSpans (GridLayoutManager.java) 在 androidx.recyclerview.widget.GridLayoutManager.checkLayoutParams (GridLayoutManager.java) 在 androidx.recyclerview.widget.GridLayoutManager.collectPrefetchPositionsForLayoutState (GridLayoutManager.java) 在 androidx.recyclerview.widget.GridLayoutManager。在 androidx.recyclerview.widget.GridLayoutManager.generateLayoutParams (GridLayoutManager.java) 在 androidx.recyclerview.widget.GridLayoutManager.generateLayoutParams (GridLayoutManager.java)爪哇)*

和 main.xml 文件

<?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"
    tools:context=".MainActivity">

    <RelativeLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorRed"
        android:orientation="vertical"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/instagramClicked"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginStart="0dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/icon_instagram" />

        <Button
            android:id="@+id/facebookClicked"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:background="@drawable/icon_facebook"/>
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="200dp"
        android:background="@color/colorRed"
        android:orientation="vertical"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerViewMenu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="vertical" />
    </RelativeLayout>

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:background="@drawable/ehliyet_80_transparan"
        android:contentDescription="Logo"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1"
        android:text="ehliyetCepte"
        android:contentDescription="ehliyetCepte"
        android:textColor="@color/colorWhite"
        android:textSize="25sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <Button
        android:id="@+id/start"
        style="@style/AppTheme.RoundedCornerMaterialButton"
        android:layout_width="150dp"
        android:layout_height="55dp"
        android:layout_marginTop="100dp"
        android:text="SINAVA BAŞLA"
        android:textColor="@color/colorRed"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

和 MainActivity.kt

import android.content.ActivityNotFoundException
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.os.StrictMode
import android.os.StrictMode.VmPolicy
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.ehliyetcepte.ehliyet.sinav.sorulari.Adapter.MenuAdapter
import com.ehliyetcepte.ehliyet.sinav.sorulari.Data.MenuModel
import com.emregurses.babysleep.Common.Common
import com.emregurses.babysleep.Common.SpacesItemDecoration
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {

    lateinit var adapter: MenuAdapter
    lateinit var itemList: MutableList<MenuModel>
    lateinit var recycle_view: RecyclerView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        recycle_view = findViewById(R.id.recyclerViewMenu) as RecyclerView
        initData()
        setData()

        instagramClicked.setOnClickListener {
            val uri = Uri.parse("http://instagram.com/_u/ehliyetapp")
            val likeIng = Intent(Intent.ACTION_VIEW, uri)

            likeIng.setPackage("com.instagram.android")

            try {
                startActivity(likeIng)
            } catch (e: ActivityNotFoundException) {
                startActivity(
                    Intent(
                        Intent.ACTION_VIEW,
                        Uri.parse("http://instagram.com/ehliyetapp")
                    )
                )
            }
        }

        facebookClicked.setOnClickListener {
            val uri = Uri.parse("https://www.facebook.com/ehliyetcepte")
            val likeIng = Intent(Intent.ACTION_VIEW, uri)

            likeIng.setPackage("com.facebook.katana")

            try {
                startActivity(likeIng)
            } catch (e: ActivityNotFoundException) {
                startActivity(
                    Intent(
                        Intent.ACTION_VIEW,
                        Uri.parse("https://www.facebook.com/ehliyetcepte")
                    )
                )
            }
        }
    }

    private fun setData() {

        if (this != null) {
            adapter = MenuAdapter(this, itemList)

            val layoutManager = GridLayoutManager(this, Common.NUM_OF_COLUMN)
            layoutManager.orientation = RecyclerView.VERTICAL
            layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup(){
                override fun getSpanSize(i: Int): Int {
                    return if(adapter != null){
                        when(adapter!!.getItemViewType(i)){
                            1 -> 1
                            0 -> Common.NUM_OF_COLUMN
                            else -> -1
                        }
                    } else {
                        -1
                    }
                }
            }

            recycle_view.layoutManager = layoutManager
            recycle_view.addItemDecoration(SpacesItemDecoration(8))
            recycle_view.adapter = adapter
        }
    }

    private fun initData() {
        itemList = ArrayList()
        itemList.add(MenuModel(R.drawable.img_review , "Exams",1))
        itemList.add(MenuModel(R.drawable.img_sss , "Exams 2",2))
        itemList.add(MenuModel(R.drawable.img_traffic_light , "Exams 3",3))
        itemList.add(MenuModel(R.drawable.img_appreview , "Exams 4",4))
    }
}
4

0 回答 0