Android应用程序不会在模拟器中显示

问题描述:

首先,我要说的是,当谈到Android(或Java)时,我是新手,所以我在做错事的可能性肯定很大一个非常基本的层面 - 请记住这一点。Android应用程序不会在模拟器中显示

我将基本包括整个来源,因为我不知道问题出在哪里(并且在任何人建议我尝试使用Google之前,我已经花了最近几天的时间来做这件事)。

eclipse.buildId=M20100909-0800 
java.version=1.6.0_24 
java.vendor=Sun Microsystems Inc. 
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_NZ 
Framework arguments: -product org.eclipse.epp.package.java.product 
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product 


Error 
Fri Feb 25 15:52:44 CET 2011 
No command output when running: 'am start -n com.company.android.app/com.company.android.app.Home -a android.intent.action.MAIN -c android.intent.category.LAUNCHER' on device emulator-5554 

com.android.ddmlib.ShellCommandUnresponsiveException 
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408) 
at com.android.ddmlib.Device.executeShellCommand(Device.java:276) 
at com.android.ide.eclipse.adt.internal.launch.ActivityLaunchAction.doLaunchAction(Unknown Source) 
at com.android.ide.eclipse.adt.internal.launch.AndroidLaunchController.launchApp(Unknown Source) 
at com.android.ide.eclipse.adt.internal.launch.AndroidLaunchController.simpleLaunch(Unknown Source) 
at com.android.ide.eclipse.adt.internal.launch.AndroidLaunchController.access$3(Unknown Source) 
at com.android.ide.eclipse.adt.internal.launch.AndroidLaunchController$3.run(Unknown Source) 

该应用程序是一个非常基本的东西:

的问题,当我尝试运行或调试,我收到以下错误消息的应用程序出现。它与视图以下XML代码的单一活动:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/helloAndroid" 
    android:text="" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

而且在活动的*的.java下面的代码:

package com.company.android.app; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 
import android.widget.TextView; 

public class Home extends Activity { 

    TextView helloWorld; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     helloWorld = (TextView) findViewById(R.id.helloAndroid); 
     helloWorld.setText("Hello Android!"); 
    } 
} 

最后,在我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.company.android.app" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="7" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".Home" 
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 

    <uses-permission android:name="android.permission.INTERNET" /> 
</manifest> 

当我运行或调试应用程序,我在控制台看到以下内容:

[2011-02-25 16:22:52 - com.company.android.app] adb is running normally. 
[2011-02-25 16:22:52 - com.company.android.app] Performing com.company.android.app.Home activity launch 
[2011-02-25 16:22:52 - com.company.android.app] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Android-2.3.3' 
[2011-02-25 16:22:57 - com.company.android.app] Uploading com.company.android.app.apk onto device 'emulator-5554' 
[2011-02-25 16:23:00 - com.company.android.app] Installing com.company.android.app.apk... 
[2011-02-25 16:23:22 - com.company.android.app] Success! 
[2011-02-25 16:23:23 - com.company.android.app] Starting activity com.company.android.app.Home on device emulator-5554 

一点点额外的信息:

  • 仿真器打开并运行 - 但从来没有得到超越Android的开机画面,也没有我可以通过按钮交互(即'家'不做任何事)。
  • 该应用针对Android 2.1-update1。

我想不出还有什么可以包括在内。

任何想法可能会导致此问题?

非常感谢提前。 Zac

+3

模拟器从来不响应是一个问题 - 有时模拟器需要较长的时间(几分钟或更长时间)拿出并充分响应。在开始调试应用程序之前,您一定要经历这个问题。我建议只启动模拟器(不是通过你的应用程序),并确保你可以把它展现出来并显示主屏幕等。给它足够的时间。 – 2011-02-25 16:34:19

+1

没有越过Android的飞溅图像是一个大问题。当您通过AVD Manager启动仿真器时会发生这种情况吗?另外,您是否可以尝试调试其中一个示例项目作为完整性检查? – 2011-02-25 16:34:56

+1

您是否可以自行启动模拟器(无需通过调试应用程序启动它)?根据您的系统规格,启动有时可能会很慢,例如1-2分钟。 – 2011-02-25 16:37:37

我发现这是由@erichamion在评论我的问题提供的解决方案。我通过AVD管理器重新启动了模拟器,并勾选了“擦除用户数据”选项并取消选中“从快照启动”选项。

我怀疑当我第一次加载模拟器时,它被我以某种方式打断,并处于无法操作的状态。清除用户数据并擦除快照可以通过加载新的状态模拟器来克服该问题。

感谢您的帮助......

我不明白在哪里(在eclipse中)你会得到第一个错误日志。

你的代码是平凡正确的,即使是怪我不使用任何布局在你的TextView(因为只是一个TextView也没用),运行发现这里...

首先,你应该尝试运行一个“从零开始”的android项目并检查: 1.在仿真器上产生HelloWorld; 2.检查logcat视图并找到类似“ActivityManager显示的活动com.yourpackage.youractivity”的内容

如果确实有效,请按照程序化UI定义逐步执行以满足您的需求。无论如何,你应该使用“Log.i(”MyApp“,”onCreate()“);”并检查logcat(logcat视图是你的朋友),如果有任何异常。

雷诺

+0

谢谢你的回复雷诺。正如我的问题的评论者所建议的问题与模拟器有关 - 不是我的应用程序。我试图使用Log.i(“”,“”),但没有看到任何日志条目,因为它甚至没有执行我的代码。尽管使用布局的建议很有用 - 我没有意识到它们是需要的(我认为我有很多东西需要学习)。 – 2011-02-28 13:48:22