Android应用未在我的设备上显示。未找到启动器活动

时间:2014-07-07 03:00:57

标签: android android-activity android-manifest

我只是关注Android开发人员training guide,我已经遇到了第二步的麻烦。

我按照指南(我甚至不做任何事情......)点击“运行”,从屏幕上选择了我的Galaxy S4,然后点击了。我收到以下错误

[2014-07-06 19:56:27 - MyFirstApp] Android Launch!
[2014-07-06 19:56:27 - MyFirstApp] adb is running normally.
[2014-07-06 19:56:27 - MyFirstApp] No Launcher activity found!
[2014-07-06 19:56:27 - MyFirstApp] The launch will only sync the application package on the device!
[2014-07-06 19:56:27 - MyFirstApp] Performing sync
[2014-07-06 19:56:27 - MyFirstApp] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.
[2014-07-06 19:56:31 - MyFirstApp] Application already deployed. No need to reinstall.
[2014-07-06 19:56:31 - MyFirstApp] \MyFirstApp\bin\MyFirstApp.apk installed on device
[2014-07-06 19:56:31 - MyFirstApp] Done!

老实说,我不知道自己做错了什么,因为我对Android没有任何经验。

唯一不同的是教程中他们的targetSdkVersion是19,但我使用的是21

以下是我的AndroidManefiest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myfirstapp"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
    </application>

</manifest>

2 个答案:

答案 0 :(得分:3)

您忘了将自己的活动声明为Manifest.xml。

每当您创建活动( blablabla类扩展活动)时,您必须将其声明为Android Manifest.xml,以便设备能够跟踪您应用的生命周期

我们称之为活动是一个提供托管窗口信息的类,该类应该扩展活动,所有这些类都必须在Manifest.xml上声明文件如下:

<application>
    ...

    <activity
            android:name="com.yourpackage.ClassName">

    </activity>

</application>

您的活动类可能名为 MainActivity ,您只需将其添加到代码中<application> </application>标记:

    <activity
        android:name="com.example.myfirstapp.MainActivity"
        android:label="@string/app_name"> <!-- This is the text that will appear on your action bar -->

        <intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

<intent-filter>告诉android这个类是&#34;主入口&#34;,第一个需要加载到你的应用程序的活动被启动,只有第一个活动需要{{1标签,其他人只需要我给出的第一个例子。

如果您从Android开发开始,我建议您阅读ActionBarWhat to do when the device is rotated

Thisthis可能会在将来帮助您。

良好的编码:)

答案 1 :(得分:1)

为您的活动启用以下intent-filter。

 <activity class=".YourActivity" android:label="your activity label">
       <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
       </intent-filter>
 </activity>   
  

{action = android.app.action.MAIN}匹配所有活动   可以用作应用程序的顶级入口点。

     

{action = android.app.action.MAIN,   category = android.app.category.LAUNCHER}是实际使用的意图   Launcher填充其顶级列表。

另请参阅Intent