应用程序在启动时崩溃 java.lang.RuntimeException: on the samsung Galaxy note4

时间:2021-05-24 13:28:36

标签: android android-studio crash-reports samsung-galaxy

该应用程序似乎在其他设备上运行良好,但在三星 Galaxy Note4 上崩溃了。问题指向我的主要活动,其中有一个“登录”和“注册”选项。

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3253)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3349)
  at android.app.ActivityThread.access$1100 (ActivityThread.java:221)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1794)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:158)
  at android.app.ActivityThread.main (ActivityThread.java:7225)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
Caused by: android.view.InflateException: 
  at android.view.LayoutInflater.inflate (LayoutInflater.java:551)
  at android.view.LayoutInflater.inflate (LayoutInflater.java:429)
  at android.view.LayoutInflater.inflate (LayoutInflater.java:380)
  at androidx.appcompat.app.AppCompatDelegateImpl.setContentView (AppCompatDelegateImpl.java:699)
  at androidx.appcompat.app.AppCompatActivity.setContentView (AppCompatActivity.java:195)
  at com.app.MyApp.MainActivity.onCreate (MainActivity.kt:17)
  at android.app.Activity.performCreate (Activity.java:6876)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1135)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3206)
Caused by: android.view.InflateException: 
  at android.view.LayoutInflater.createView (LayoutInflater.java:657)
  at com.android.internal.policy.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:58)
  at android.view.LayoutInflater.onCreateView (LayoutInflater.java:706)
  at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:774)
  at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:716)
  at android.view.LayoutInflater.inflate (LayoutInflater.java:498)
Caused by: java.lang.reflect.InvocationTargetException: 
  at java.lang.reflect.Constructor.newInstance (Native Method)
  at android.view.LayoutInflater.createView (LayoutInflater.java:631)
Caused by: java.lang.OutOfMemoryError: 
  at dalvik.system.VMRuntime.newNonMovableArray (Native Method)
  at android.graphics.BitmapFactory.nativeDecodeAsset (Native Method)
  at android.graphics.BitmapFactory.decodeStream (BitmapFactory.java:856)
  at android.graphics.BitmapFactory.decodeResourceStream (BitmapFactory.java:675)
  at android.graphics.drawable.Drawable.createFromResourceStream (Drawable.java:2228)
  at android.content.res.Resources.loadDrawableForCookie (Resources.java:4215)
  at android.content.res.Resources.loadDrawable (Resources.java:4089)
  at android.content.res.Resources.loadDrawable (Resources.java:3939)
  at android.content.res.TypedArray.getDrawable (TypedArray.java:886)
  at android.view.View.<init> (View.java:4225)
  at android.view.ViewGroup.<init> (ViewGroup.java:589)
  at android.widget.RelativeLayout.<init> (RelativeLayout.java:249)
  at android.widget.RelativeLayout.<init> (RelativeLayout.java:245)
  at android.widget.RelativeLayout.<init> (RelativeLayout.java:241)

我的主要活动允许用户在登录或注册之间进行选择。 这就是我的 activity_main xml 的样子:(这在大多数设备上都可以正常工作)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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/uititle"
    tools:context=".MainActivity">

    <ImageView
        android:layout_width="250dp"
        android:layout_height="265dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:src="@drawable/loginbackground"/>


    <Button
        android:id="@+id/firstloginBtn"
        android:layout_width="162dp"
        android:layout_height="63dp"
        android:background="@drawable/ovallogbuttons"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="340dp"
        style="@style/loginbtn"
        android:text="@string/login"
        android:textColor="@color/grey"
        app:backgroundTint="@color/whitedark"
        android:paddingLeft="1dp"/>

    <Button
        android:id="@+id/registerBtn"
        android:layout_width="162dp"
        android:layout_height="63dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="440dp"
        style="@style/registerbtn"
        android:background="@drawable/ovallogbuttons"
        android:text="Register"
        android:textColor="@color/grey"
        app:backgroundTint="@color/whitedark"
        android:paddingLeft="1dp"/>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

在imageView中使用uititle drawable,让它更好的控制图片的内存分配。最好使用像 picasso 或 glide 这样的第三方图像加载器库来让它们处理内存管理。

相关问题