Android-приложение не будет отображаться в эмуляторе - PullRequest
1 голос
/ 25 февраля 2011

Во-первых, я хочу заявить, что я новичок, когда дело доходит до Android (или Java, если на то пошло), поэтому есть большая вероятность, что я делаю что-то не так на самом базовом уровне - пожалуйста, оставьте это в виду.

Я включу в основном весь источник, так как понятия не имею, в чем причина проблемы (и, прежде чем кто-либо предложит мне попробовать 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

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

Решение, которое я нашел, было предоставлено @erichamion в комментариях к моему вопросу. Я перезапустил эмулятор через AVD Manager с установленной опцией «Wipe user data» и опцией «Launch from snapshot».

Подозреваю, что когда я впервые загрузил эмулятор, он каким-то образом прервался и остался в нерабочем состоянии. Очистка пользовательских данных и очистка снимка преодолели эту проблему, загрузив эмулятор в свежем состоянии.

Спасибо за помощь ...

0 голосов
/ 25 февраля 2011

Я не понимаю, где (в затмении) вы получаете первый журнал ошибок.

Ваш код тривиален, и даже если это странно, я не использую никакой компоновки вокруг вашего TextView (потому что просто TextView бесполезен), запускает find здесь…

Сначала вы должны попробовать запустить «android-проект» с нуля и проверить: 1. получившийся HelloWorld на эмуляторе;2. проверьте представление logcat и найдите что-то вроде «ActivityManager Отображаемое действие com.yourpackage.youractivity»

Если это работает, выполните пошаговое определение программного интерфейса для удовлетворения ваших потребностей.

В любом случае, вы должны использовать «Log.i (« MyApp »,« в onCreate () »);»и проверьте logcat (представление logcat - ваш друг), если есть какие-либо исключения.

Renaud

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...