我已经在我的sony x8手机上测试了我的应用程序并且它运行得很好,但是它在模拟器中不起作用,我尝试重新安装Android模拟器,删除等...
这很烦人。我在打开应用程序时在模拟器上说的错误意外停止。
请帮忙。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mainbgg"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="220dp"
android:layout_height="50dp"
android:layout_gravity="left"
android:layout_marginLeft="0dp"
android:layout_marginTop="10dp"
android:scaleType="centerCrop"
android:src="@drawable/headingmain" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="300dp"
android:layout_height="20dp"
android:layout_marginLeft="102dp"
android:layout_marginTop="0dp"
android:scaleType="centerCrop"
android:src="@drawable/headingby" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="120dp"
android:layout_height="125dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="0dp"
android:layout_marginTop="27dp"
android:scaleType="centerCrop"
android:src="@drawable/ballmain" />
<LinearLayout
android:id="@+id/MainMenu"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_marginTop="10dp"
android:layout_weight="0.35"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginTop="12dp"
android:background="@drawable/playbutton"
android:src="@drawable/playbutton" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginTop="12dp"
android:background="@drawable/helpbutton"
android:src="@drawable/helpbutton" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginTop="12dp"
android:background="@drawable/aboutbutton"
android:src="@drawable/aboutbutton" />
</LinearLayout>
这是activity.java:
package com.sunny.studios.marton.seoul.uefaquiz;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
和logcat:
Don't you think the problem is : java.lang.RuntimeException: Unable to start activity this????
09-17 20:32:26.892: D/dalvikvm(296): GC_EXTERNAL_ALLOC freed 801 objects / 58504 bytes in 56ms
09-17 20:32:28.333: E/dalvikvm-heap(296): 19180800-byte external allocation too large for this process.
09-17 20:32:28.333: E/GraphicsJNI(296): VM won't let us allocate 19180800 bytes
09-17 20:32:28.333: D/AndroidRuntime(296): Shutting down VM
09-17 20:32:28.343: W/dalvikvm(296): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
09-17 20:32:28.543: E/AndroidRuntime(296): FATAL EXCEPTION: main
09-17 20:32:28.543: E/AndroidRuntime(296): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sunny.studios.marton.seoul.uefaquiz/com.sunny.studios.marton.seoul.uefaquiz.MainActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.os.Handler.dispatchMessage(Handler.java:99)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.os.Looper.loop(Looper.java:123)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-17 20:32:28.543: E/AndroidRuntime(296): at java.lang.reflect.Method.invokeNative(Native Method)
09-17 20:32:28.543: E/AndroidRuntime(296): at java.lang.reflect.Method.invoke(Method.java:521)
09-17 20:32:28.543: E/AndroidRuntime(296): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-17 20:32:28.543: E/AndroidRuntime(296): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-17 20:32:28.543: E/AndroidRuntime(296): at dalvik.system.NativeStart.main(Native Method)
09-17 20:32:28.543: E/AndroidRuntime(296): Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.createView(LayoutInflater.java:513)
09-17 20:32:28.543: E/AndroidRuntime(296): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
09-17 20:32:28.543: E/AndroidRuntime(296): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.Activity.setContentView(Activity.java:1647)
09-17 20:32:28.543: E/AndroidRuntime(296): at com.sunny.studios.marton.seoul.uefaquiz.MainActivity.onCreate(MainActivity.java:12)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-17 20:32:28.543: E/AndroidRuntime(296): ... 11 more
09-17 20:32:28.543: E/AndroidRuntime(296): Caused by: java.lang.reflect.InvocationTargetException
09-17 20:32:28.543: E/AndroidRuntime(296): at android.widget.ImageView.<init>(ImageView.java:108)
09-17 20:32:28.543: E/AndroidRuntime(296): at java.lang.reflect.Constructor.constructNative(Native Method)
09-17 20:32:28.543: E/AndroidRuntime(296): at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.view.LayoutInflater.createView(LayoutInflater.java:500)
09-17 20:32:28.543: E/AndroidRuntime(296): ... 22 more
09-17 20:32:28.543: E/AndroidRuntime(296): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.Bitmap.nativeCreate(Native Method)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.content.res.Resources.loadDrawable(Resources.java:1709)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
09-17 20:32:28.543: E/AndroidRuntime(296): at android.widget.ImageView.<init>(ImageView.java:118)
09-17 20:32:28.543: E/AndroidRuntime(296): ... 26 more
答案 0 :(得分:1)
你不认为问题是
不一定。在真实设备上进行测试要好得多。我会尝试在一个真实的设备上进行测试,该设备接近仿真器试图模拟的设备。
这一行
at com.sunny.studios.marton.seoul.uefaquiz.MainActivity.onCreate(MainActivity.java:12)
会让我想看第12行,看看是否有任何可疑之处。你还得到一个OutOfMemoryException
。如果您使用位图做了很多事情,那么您将需要查看Using Bitmaps Efficiently。否则,我会在几个不同的设备上测试,看看你是否有任何问题。也许您没有为模拟器分配太多内存。除非我错过了什么。
答案 1 :(得分:1)
实际上问题在于您尝试加载的图像。它的大小非常大,仿真器的VM内存有限,但设备有更多。所以它适用于真实设备,但不适用于仿真器。尝试减小图像的大小。
问题在这里。
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
答案 2 :(得分:1)
打开Android虚拟设备管理器 - &gt;新建或编辑 - &gt;内存选项。检查RAM&amp; VM Heap足够大了吗?
答案 3 :(得分:0)
图像的实际分辨率是多少?仅仅因为它是300kb压缩,如果它是1920x1080,那就是2兆像素,即8MB未压缩位图(RGBA),以及(IIRC)16MB占用空间,因为Android处理覆盖的方式。
将其缩小到有意义的东西,并利用drawable-ldpi drawable-mdpi等目录 - 这样你可以将不同的设备指向不同的大小 - 具有大屏幕的设备将拥有大量的RAM,因此他们可以例如,处理从drawable-xhdpi加载图像。
对于-ldpi设备,您可以轻松将其缩小到320x240像素,因为这是此类设备中最常见的屏幕分辨率。
http://developer.android.com/guide/practices/screens_support.html
答案 4 :(得分:0)
我也面临同样的情绪。我禁用了我的防病毒软件(Quickheal),它开始工作了。 Quickheal一直阻止我的模拟器图像。