非解决的Android Studios问题,不幸的是

时间:2016-05-04 19:10:33

标签: java android

我发现,当我创建一个布局和Java文件时,我正在编写代码,所以当我按下按钮时,它会转到另一个活动。

我已经调用了9个方法将我发送到另一个活动,MainJava类中有3个或4个,布局中有4个,一切正常。

但现在新按钮中的1个按钮不起作用,并说“遗憾的是应用程序停止了”。我无法弄清楚真正的问题在哪里,但代码就像其他按钮一样,效果很好。

ac_phone

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal">


    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:id="@+id/imageView6"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="@drawable/phone"
        android:contentDescription="@string/phone" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Xiaomi M4 16GB Mobile Phone"
        android:id="@+id/textView48"
        android:layout_below="@+id/imageView6"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textColor="#852121" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Description:"
        android:id="@+id/textView49"
        android:layout_below="@+id/textView48"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="36dp"
        android:layout_marginStart="36dp"
        android:textColor="#852121" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Resolution:1920x1080 "
        android:id="@+id/textView50"
        android:layout_below="@+id/textView49"
        android:layout_alignLeft="@+id/textView49"
        android:layout_alignStart="@+id/textView49"
        android:textColor="#ffffff" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Micro-SIM"
        android:id="@+id/textView51"
        android:layout_below="@+id/textView50"
        android:layout_alignLeft="@+id/textView50"
        android:layout_alignStart="@+id/textView50"
        android:textColor="#ffffff" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Wi-Fi, dual-band, Wi-Fi Direct, DLNA, hotspot"
        android:id="@+id/textView52"
        android:layout_below="@+id/textView51"
        android:layout_alignLeft="@+id/textView51"
        android:layout_alignStart="@+id/textView51"
        android:textColor="#ffffff" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="13MP camera"
        android:id="@+id/textView53"
        android:layout_below="@+id/textView52"
        android:layout_alignLeft="@+id/textView52"
        android:layout_alignStart="@+id/textView52"
        android:textColor="#ffffff" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="3GB Ram"
        android:id="@+id/textView54"
        android:layout_below="@+id/textView53"
        android:layout_alignLeft="@+id/textView53"
        android:layout_alignStart="@+id/textView53"
        android:textColor="#ffffff" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/phoneStart"
        android:id="@+id/button3"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_toRightOf="@+id/imageView6"
        android:layout_toEndOf="@+id/imageView6" />

</RelativeLayout>

我点击了onClick按钮:

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal">

    <View
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:background="@android:color/background_dark"
        android:id="@+id/line1"
        android:layout_below="@+id/textView45"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Level 3"
        android:id="@+id/textView45"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="23dp" />

    <ImageButton
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:id="@+id/imageButton2"
        android:layout_marginTop="34dp"
        android:onClick="sendPhone"
        android:background="@drawable/phone"
        android:layout_below="@+id/line1"
        android:layout_toLeftOf="@+id/textView45"
        android:layout_toStartOf="@+id/textView45" />

</RelativeLayout>

当然我在Java文件中创建一个命令:

 public void sendPhone(View view) {
    Intent intent = new Intent(getApplicationContext(), phoneclass.class);
    startActivity(intent);
}

我创建清单文件:

activity android:name=".phoneclass">

正如我之前所说的,其他9个按钮运行良好,但有一个按钮正在变:“不幸的是,应用程序停止工作”。

05-04 19:35:26.800 2437-2437/? E/AndroidRuntime: FATAL EXCEPTION: main
                                             Process: dynamochest.myapplication, PID: 2437
                                             java.lang.RuntimeException: Unable to start activity ComponentInfo{dynamochest.myapplication/dynamochest.myapplication.phoneclass}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                 at android.os.Looper.loop(Looper.java:148)
                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                              Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                                                 at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
                                                 at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                 at dynamochest.myapplication.phoneclass.onCreate(phoneclass.java:12)
                                                 at android.app.Activity.performCreate(Activity.java:6237)
                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                 at android.os.Looper.loop(Looper.java:148) 
                                                 at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                              Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                 at android.view.LayoutInflater.createView(LayoutInflater.java:645)
                                                 at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
                                                 at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694)
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762)
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                 at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
                                                 at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                                                 at dynamochest.myapplication.phoneclass.onCreate(phoneclass.java:12) 
                                                 at android.app.Activity.performCreate(Activity.java:6237) 
                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                 at android.os.Looper.loop(Looper.java:148) 
                                                 at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                              Caused by: java.lang.reflect.InvocationTargetException
                                                 at java.lang.reflect.Constructor.newInstance(Native Method)
                                                 at android.view.LayoutInflater.createView(LayoutInflater.java:619)
                                                 at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
                                                 at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                 at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
                                                 at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                                                 at dynamochest.myapplication.phoneclass.onCreate(phoneclass.java:12) 
                                                 at android.app.Activity.performCreate(Activity.java:6237) 
                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                 at android.os.Looper.loop(Looper.java:148) 
                                                 at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                              Caused by: java.lang.OutOfMemoryError: Failed to allocate a 12441612 byte allocation with 4194304 free bytes and 7MB until OOM
                                                 at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
                                                 at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
                                                 at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609)
                                                 at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
                                                 at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080)
                                                 at android.content.res.Resources.loadDrawableForCookie(Resources.java:2635)
                                                 at android.content.res.Resources.loadDrawable(Resources.java:2540)
                                                 at android.content.res.TypedArray.getDrawable(TypedArray.java:870)
                                                 at android.view.View.<init>(View.java:3948)
                                                 at android.view.ViewGroup.<init>(ViewGroup.java:573)
                                                 at android.widget.LinearLayout.<init>(LinearLayout.java:203)
                                                 at android.widget.LinearLayout.<init>(LinearLayout.java:199)
                                                 at android.widget.LinearLayout.<init>(LinearLayout.java:195)
                                                 at java.lang.reflect.Constructor.newInstance(Native Method) 
                                                 at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
                                                 at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
                                                 at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                 at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
                                                 at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                                                 at dynamochest.myapplication.phoneclass.onCreate(phoneclass.java:12) 
                                                 at android.app.Activity.performCreate(Activity.java:6237) 
                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                 at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                 at android.os.Looper.loop(Looper.java:148) 
                                                 at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

这真是奇怪的事情,一切正常,但是那1个按钮。

问题隐藏的任何想法?

3 个答案:

答案 0 :(得分:0)

当我跟踪你的logcat时,它告诉错误似乎是由内存不足引起的,这通常会在你有大尺寸图像时发生。如果这可能对您有所帮助,请尝试查看此链接。 App crashes on change of ImageView

此外,您使用的是实际设备还是模拟器?如果您使用的是模拟器,请尝试增加大小分配。如果您有可以测试的设备,请尝试并检查您是否会遇到同样的问题。

答案 1 :(得分:0)

我认为你的布局文件中有大尺寸的图像导致了OutOfMemoryError。正如Android培训指南所述

  

如果您不小心,位图可以快速消耗您的可用   内存预算导致应用程序因可怕而崩溃   exception:java.lang.OutofMemoryError:位图大小超过VM预算。

您可以按照以下课程尝试有效加载图片

Displaying Bitmaps Efficiently

SO中有一些很好的解决方案来解决这些问题。

Out of memory error when inflating simple xml layout in android

答案 2 :(得分:-2)

尝试在Intent intent = new Intent(this, phoneclass.class);

中使用“ActivityName.this”而不只是“this”