【发布时间】:2016-07-07 14:08:30
【问题描述】:
昨天我做了一个简单的应用程序;所以,当我按下按钮时,新的活动(Activity2Main)应该开始。 昨天它工作正常,我很高兴。一切都很棒。 今天,我尝试运行应用程序,我看到了什么?当我按下按钮时,我看到了崩溃并关闭应用程序消息。 会是什么? 这是来自控制台的日志:
E / AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dns.politicalscience, PID: 2076
java.lang.RuntimeException: Unable to start activity ComponentInfo {
com.example.dns.politicalscience / com.example.dns.politicalscience.Main2Activity
}: 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: 267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java: 129)
at com.example.dns.politicalscience.Main2Activity.onCreate(Main2Activity.java: 11)
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: 267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java: 129)
at com.example.dns.politicalscience.Main2Activity.onCreate(Main2Activity.java: 11)
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: 267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java: 129)
at com.example.dns.politicalscience.Main2Activity.onCreate(Main2Activity.java: 11)
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 44728332 byte allocation with 4194304 free bytes and 9 MB 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.RelativeLayout. < init > (RelativeLayout.java: 248)
at android.widget.RelativeLayout. < init > (RelativeLayout.java: 244)
at android.widget.RelativeLayout. < init > (RelativeLayout.java: 240)
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: 267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java: 129)
at com.example.dns.politicalscience.Main2Activity.onCreate(Main2Activity.java: 11)
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)
我的 Manifest.xml 文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2Activity"></activity>
</application>
这是我的 activity1.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/canbe_backgroud"
tools:context="com.example.dns.politicalscience.MainActivity"
android:onClick="onClickBackground">
<ImageButton
android:layout_width="55mm"
android:layout_height="20mm"
android:id="@+id/imageButton"
android:background="@drawable/start_button"
android:cropToPadding="false"
android:clickable="true"
android:onClick="onClickObama"
android:nestedScrollingEnabled="false" />
<ImageButton
android:layout_width="55mm"
android:layout_height="20mm"
android:id="@+id/imageButton2"
android:layout_below="@+id/imageButton"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:background="@drawable/idea_button"
android:clickable="true" />
<ImageButton
android:layout_width="55mm"
android:layout_height="20mm"
android:id="@+id/imageButton3"
android:layout_below="@+id/imageButton2"
android:background="@drawable/about_botton"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:clickable="true"
android:onClick="onClickAbout" />
</RelativeLayout>
Here's second activityxml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/canbe_backgroud"
tools:context="com.example.dns.politicalscience.Main2Activity">
</RelativeLayout>
我在我的代码中没有发现任何错误,即使在 java 中也是如此 这是第一个活动中的java代码onClick:
public void onClickAbout(View view) {
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
这是第二个:
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
}
发生了什么事,伙计们?昨天在模拟器上运行良好,但今天它显示崩溃消息。
【问题讨论】:
-
如果你仔细检查堆栈跟踪,你会看到
Caused by: java.lang.OutOfMemoryError: Failed to allocate a 44728332 byte allocation with 4194304 free bytes and 9MB until OOM——这有帮助吗? -
所以,问题是,因为我的模拟器没有内存,对吧?
-
您似乎正在尝试分配一个只有 4MB 可用空间的 44MB 对象。
-
我应该怎么做才能解决内存问题?
-
弄清楚你为什么要发送一个 44MB 的对象图,然后不要那样做。