"Không tìm thấy hoạt động của Trình khởi chạy nào!"


82

Tôi đang viết một chương trình đơn giản của Android và không gặp lỗi nào, tôi không biết chúng là gì. Chương trình của tôi là đúng, nhưng không hiển thị đầu ra. Tôi nghĩ đó là vì hai dòng này:

[2005-01-06 19:56:38 - my_Android] No Launcher activity found!
[2005-01-06 19:56:38 - my_Android] The launch will only sync the application package on the device!

Câu trả lời:


158

Đây là một ví dụ từ AndroidManifest.xml. Bạn cần chỉ định MAIN và LAUNCHER trong bộ lọc mục đích cho hoạt động bạn muốn bắt đầu khi khởi chạy

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="ExampleActivity"
              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>

6
Những cái đó sẽ luôn giống hệt như vậy, chúng không phải là các lớp trong ứng dụng của bạn, chúng là những hành động đang xảy ra. Tương tự, bạn có thể kích hoạt Hoạt động trên các hành động khác. ví dụ: <action android: name = "android.intent.action.VIEW"> </action> <category android: name = "android.intent.category.DEFAULT"> </category> <category android: name = "android .intent.category.BROWSABLE "> </category>
clan84

"Về cơ bản" giúp Android quyết định phải làm gì với Activity. Xem phần Ý định của tài liệu
dbryson

2
Để không quên sửa đổi giá trị của thuộc tính này android:name="ExampleActivity"thành lớp chính hoạt động thích hợp.
Omar

51

Nhiều thẻ hành động trong một thẻ bộ lọc mục đích cũng sẽ gây ra lỗi tương tự.


Tôi đã nhận được một phiếu tán thành. Bất cứ ai có thể xác nhận nếu triệu chứng này đã được sửa chữa? Tôi luôn cảm thấy nó như một con bọ.
Gusdor

24

Giống như Gusdor đã nói ở trên, "Nhiều thẻ hành động trong một thẻ bộ lọc mục đích duy nhất cũng sẽ gây ra cùng một lỗi." (Hãy ghi công cho anh ấy! Tôi chỉ có thể hôn Gusdor vì điều này!)
Tôi không tìm thấy tài liệu nào cho sự kiện này! Tôi đã thêm một action (USB) mới và thật thông minh, tôi đã gộp nó vào cùng một bộ lọc ý định. Và nó đã phá vỡ sự ra mắt. Giống như Gusdor đã nói, một bộ lọc ý định, một hành động! Rõ ràng mỗi hành động nên đi trong bộ lọc ý định của riêng nó.
Nó sẽ giống như thế này...

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
  <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>

Khi tôi làm điều này, WAZOO! nó đã làm việc!


Tôi đang tìm kiếm cái này
Vijay

17

Bạn có hoạt động nào được thiết lập là hoạt động được khởi chạy khi ứng dụng bắt đầu không?

Điều này được thực hiện trong tệp Manifest.xml của bạn, giống như:

    <activity android:name=".Main" android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

8

Kiểm tra tệp kê khai.xml của bạn. Hãy chắc chắn rằng bạn có danh mục LAUNCHER ở đó.

<activity android:name=".myActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
    </activity>


5

Tôi đã khắc phục sự cố bằng cách thêm khối hoạt động trong thẻ ứng dụng. Tôi đã tạo dự án bằng trình hướng dẫn, tôi không biết tại sao tệp AdroidManifest.xml của tôi không chứa khối ứng dụng? Tôi đã thêm khối ứng dụng:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".ToDoListActivity"
        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>

Và tôi nhận được đầu ra mong muốn trên trình giả lập.


5

Như đã được chỉ ra, lỗi này có thể do bị thiếu hoặc không chính xác intent-filter.

Tôi chỉ muốn nói thêm rằng lỗi này cũng xuất hiện nếu bạn thiết lập android:exported="false"hoạt động trình khởi chạy của mình (trong tệp kê khai).


Đây thực sự là vấn đề của tôi.
bvd

2

Tôi đã gặp vấn đề tương tự và hóa ra tôi đã có '\' thay vì '/' trong thẻ xml. Nó vẫn cho lỗi tương tự nhưng chỉ là do sự cố cú pháp.


2

Nếu bạn đang sử dụng IDE nhật thực tiêu chuẩn do google cung cấp cho phát triển Android, bạn có thể chọn hộp kiểm "Hoạt động của trình khởi chạy" trong khi tạo Hoạt động mới. Vui lòng tìm bên dưới:

nhập mô tả hình ảnh ở đây


2

Trong Eclipse khi nào có thể làm điều này:

nhập mô tả hình ảnh ở đây

Nhưng bạn nên thực hiện các thay đổi tương ứng bên trong tệp kê khai Android.


1

chỉ cần thêm thẻ này vào thẻ ứng dụng của bạn trong tệp AndroidManifest.xml

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

và cũng chỉnh sửa thẻ use-sdk từ android: targetSdkVersion = "16" thành 17

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

1

Bạn đã bỏ lỡ trong việc chỉ định các phần tử bộ lọc ý định trong tệp kê khai của mình. Tệp kê khai là:

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="Your Activity Name"
              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>

Thêm và kiểm tra điều này một cách chính xác. Hy vọng điều này sẽ giúp ..


1

Tệp kê khai phân biệt chữ hoa chữ thường, vì vậy vui lòng so sánh các dòng này để biết bất kỳ trường hợp nào không khớp, đặc biệt là từ MAINtrong:

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

1

Bạn có thể thêm trình khởi chạy vào hoạt động trong trình chỉnh sửa trực quan tệp kê khai nhật thực:

Phần Application Nodes sẽ giống như sau:


1

MAIN sẽ quyết định hoạt động đầu tiên sẽ được sử dụng khi ứng dụng khởi động. Trình khởi chạy sẽ thêm ứng dụng trong bảng điều khiển ứng dụng.

Nếu bạn đã có chúng và bạn vẫn nhận được thông báo lỗi nhưng có thể là do bạn có thể đang sử dụng nhiều danh mục hoặc hành động hơn trong bộ lọc ý định. Trong bộ lọc ý định chỉ có thể có một thẻ như vậy. Để thêm một danh mục khác, hãy đặt nó vào một bộ lọc mục đích khác, như sau

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

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

        <!--
             TODO - Add necessary intent filter information so that this
                Activity will accept Intents with the
                action "android.intent.action.VIEW" and with an "http"
                schemed URL
        -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>

0

Bạn chưa bao gồm bộ lọc ý định của Trình khởi chạy trong hoạt động bạn muốn xuất hiện đầu tiên, vì vậy nó không biết hoạt động nào sẽ bắt đầu khi ứng dụng khởi chạy, vì điều này cho hệ thống biết bằng cách bao gồm ý định của trình khởi chạy trong tệp kê khai.xml

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.