当试图在外部设备上运行应用程序时,控制台说一切顺利但没有任何反应。为什么?

时间:2013-02-04 07:48:15

标签: android eclipse adb

所以现在我正试图从developers.android.com运行the default Hello World! app。我已经为我的SGSII安装了usb驱动程序,它显示为我可以用来运行应用程序的设备。当我选择它时,这就是控制台中出现的内容。这个,仅此而已:

[2013-02-03 23:41:14 - FirstApp] Android Launch!
[2013-02-03 23:41:14 - FirstApp] adb is running normally.
[2013-02-03 23:41:14 - FirstApp] Performing com.sweatyreptile.chee.firstapp.MainActivity activity launch
[2013-02-03 23:41:14 - FirstApp] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.
[2013-02-03 23:41:16 - FirstApp] Uploading FirstApp.apk onto device '3afd08de'
[2013-02-03 23:41:16 - FirstApp] Installing FirstApp.apk...
[2013-02-03 23:41:45 - FirstApp] Success!
[2013-02-03 23:41:45 - FirstApp] Starting activity com.sweatyreptile.chee.firstapp.MainActivity on device 3afd08de

设备上似乎没有任何事情发生。

编辑:就像我说的,我只是想尝试运行通过创建一个新的Android应用程序项目生成的默认应用程序。

编辑2:所以我第一次尝试在平板电脑上运行该应用程序,但手机仍无法正常工作。这可能与手机根据自定义ROM有关,而平板电脑是库存吗?

代码:

MainActivity.java:

package com.sweatyreptile.chee.firstapp;

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.activity_main, menu);
        return true;
    }

}

的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sweatyreptile.chee.firstapp"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.sweatyreptile.chee.firstapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

activity_main.xml中

<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"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

我(有点)发现了问题所在。我在三星Galaxy S2上使用自定义ROM,名为Infamous。它必定存在阻碍某些工作的问题。

在安装了一个库存(但仍然是root和deodexed)ROM之后,adb能够毫无问题地安装和启动我的应用程序。

答案 1 :(得分:0)

要在模拟器中运行应用程序,请更改以下设置并根据目标或最低API级别选择模拟器:

右键点击您的应用并转到Run As>Run Configurations...

Run configuration选择Target标签,然后在该标签中选中单选按钮Always prompt to pick device,然后点击Apply & Ok

完成上述操作后,如果eclips的配置与应用程序API一样,则eclips将始终要求您选择已运行的模拟器。