Không tìm thấy Hoạt động mặc định trong Android Studio


93

Tôi vừa nâng cấp lên Android Studio 0.2.8 và gặp lỗi "Không tìm thấy hoạt động mặc định" khi cố chỉnh sửa cấu hình chạy.

Khi tôi khởi chạy Android Studio, tôi gặp lỗi này "Chỉ được phép truy cập từ chuỗi sự kiện gửi sự kiện"

Hoạt động tôi đang sử dụng là một hoạt động phân mảnh.

Cho đến nay tôi đã thử xây dựng lại và vô hiệu hóa bộ nhớ đệm / khởi động lại. Cả hai đều không có ích gì.

Vui lòng cho tôi biết tôi có thể làm gì để khắc phục sự cố.


Câu trả lời:


45

Trong Android Studio, nhấp chuột phải vào dự án và chọn Mở Cài đặt mô-đun . Sau đó, chuyển đến tab Nguồn trong mô-đun của bạn, tìm thư mục src , nhấp chuột phải vào nó và đánh dấu nó là Nguồn (màu xanh lam).

CHỈNH SỬA: Không có tab nguồn trong các phiên bản Android Studio mới hơn, nhưng bạn có thể chỉnh sửa tệp build.gradle để thay thế: https://stackoverflow.com/a/22028681/1101730 (cảm ơn đã nhận xét Josh)


27
Làm cách nào tôi có thể làm điều này trong 0.6.1 ? Tôi không thấy tab Nguồn .
lschlessinger

7
tôi cũng không. Có Properties, ký kết, Hương, loại Xây dựng và Dependencies
Junior Mayhé

4
Tôi không có tab "Nguồn", vì vậy tôi đã chỉnh sửa tệp build.gradle để thay thế: stackoverflow.com/a/22028681
Josh

2
Hoàn hảo! Cảm ơn đã giúp @Micer. Các bạn, trong dự án IntelliJ của bạn, hãy nhấn 'F4', sau đó bạn có ba tab (Nguồn, Đường dẫn, Phụ thuộc), hãy chuyển đến tab 'Nguồn' và kiểm tra xem thư mục 'src' (trong cấu trúc cây) có màu xanh lam không. Nếu không nhấn 'Alt + S' để đưa thư mục nguồn vào Cấu trúc dự án.
Ryan Amaral

1
@IgorGanapolsky Bạn nói đúng, có vẻ như tab Nguồn đã bị xóa trong các phiên bản Android Studio mới hơn. Kiểm tra câu trả lời của Josh.
Micer

51

Bạn đã thêm ACTION_MAINbộ lọc ý định vào hoạt động chính của mình chưa? Nếu bạn không thêm điều này, thì android sẽ không biết hoạt động nào sẽ khởi chạy làm hoạt động chính.

Ví dụ:

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

1
Vâng, điều này đã được thực hiện. Tôi đã sửa lỗi "Chỉ được phép truy cập từ chuỗi điều phối sự kiện" bằng cách sử dụng oracle JDK thay vì openJDK. Các hoạt động mặc định mất tích vẫn còn dai dẳng mặc dù
Vipassana Vijayarangan

5
Ngoài ra, tên "com.package.name.MyActivity"có thể được bỏ qua nếu tất cả <intent-filter>phần tử nằm bên trong một <activity>phần tử tương ứng với MyActivity trong không gian tên của bạn.
Xavi Montero

Hah, tôi đã đổi tên một lớp có tên Filterbao gồm tất cả các biến được đặt tên filtervà dường như Android Studio đã quyết định bao gồm AndroidManifest.xml<intent-*filter*>. Câu trả lời này đã kiểm tra lại tôi của tôi AndroidManifest.xmlvà giúp tôi tìm ra lỗi =)
Stephan Henningsen

Điều này thậm chí còn được ghi lại ở đâu? Tôi không thể tìm thấy nó…
mirabilos

32

Tôi đã gặp sự cố tương tự khi nhập một dự án vào Android Studio, có thể do dự án đã được phát triển trên phiên bản Android Studio cũ hơn so với phiên bản hiện được cài đặt trên máy tính của tôi.

Những gì đã giải quyết nó chỉ đơn giản là chọn:

File -> Invalidate Caches / Restart...

và sau đó chọn Invalidate and Restart.


1
Cảm ơn bạn @syntagma rất nhiều, hướng dẫn của bạn đã giải quyết được vấn đề của tôi sau nhiều giờ nỗ lực.
MMG

16

Nếu bạn không có tab và bạn bắt đầu với một hoạt động trống, hãy thử điều này. Dưới đây là một ví dụ về mã mẫu:

<application android:label="@string/app_name">

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

</application>

Bây giờ, hãy truy cập tệp AndroidManifest.xml của bạn. Tiếp theo sao chép bộ lọc ý định từ mã này. Xem tệp kê khai của bạn thực sự tốt và dán bộ lọc ý định vào đúng vị trí của nó trong đoạn mã trên. (sau phần .yourActivityName> của tệp kê khai.) Tôi hy vọng điều này sẽ hữu ích.


13

Nếu bạn vẫn gặp lỗi "Không tìm thấy hoạt động mặc định" khi bạn cố gắng chỉnh sửa cấu hình chạy ngay cả sau khi thực thi:

Vô hiệu hóa bộ nhớ cache và Khởi động lại .

Sau đó, hãy thử xóa thư mục Cài đặt / Tùy chọn:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

hoặc trên Mac:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

Nếu bạn đã đổi tên các gói của mình hoặc bạn chuyển các nhánh từ quyền kiểm soát phiên bản của mình, đôi khi Android Studio không nhận ra tất cả các tệp và làm mọi thứ rối tung lên. Giải pháp duy nhất phù hợp với tôi là đóng AS, sau đó xóa .AndroidStudioXY (trong đó XY là số phiên bản của bạn) mà @ Phileo99 đã chỉ ra.
Zbarcea Christian

1
Ông đã cứu vớt đời tôi! Chỉ cần làm điều này / <USER_HOME_DIR> /.
AndroidStudioPreview3.2

bạn được chào đón @nadafafif! xin vui lòng ủng hộ câu trả lời của tôi nếu nó giúp bạn.
Phileo99

@ Phileo99 Đã làm được điều đó. Không thể ngăn bản thân làm điều đó. :) Chúc mừng. Tiếp tục giúp đỡ như vậy.
nadafafif

Điều đó đã hữu ích, nhưng hãy lưu ý rằng bạn sẽ tải xuống rất nhiều thứ. Mất khoảng 15 phút để tải xuống
Valgaal

10

Khi tôi nhấp vào "Mở Cài đặt mô-đun", không có tab "Nguồn" , tôi nghĩ vì điều đó đã bị xóa đối với các phiên bản Android Studio mới hơn (tôi đang sử dụng 0.8.14). Vì vậy, tôi phải làm điều này thay thế:

Thêm các dòng này vào build.gradletệp bên trong android { ... }khối:

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

Sau khi chỉnh sửa tệp, nhấp vào Công cụ> Android> Đồng bộ hóa dự án với tệp Gradle .

Tín dụng cho câu trả lời nàynhận xét này .


9

Sau đây là mẹo cho tôi. Từ Chạy -> Chỉnh sửa Cấu hình .

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


Tôi khuyên bạn nên chống lại giải pháp này vì nó khiến ứng dụng không còn được hiển thị trong danh sách các ứng dụng có sẵn trên Samsung Galaxy S5 Neo và Samsung Galaxy S6.
Teun Kooijman

3

Vấn đề của tôi là do một lỗi bổ sung thỉnh thoảng xuất hiện, cho biết

Manifest Merger failed with multiple errors in Android Studio

Điều cuối cùng gây ra sự cố của tôi là thực tế có nhiều tệp kê khai (Tệp kê khai gỡ lỗi và tệp kê khai trong mô-đun mới tôi vừa nhập) và chúng không được hợp nhất chính xác do điều này. Sau khi xem câu trả lời này , tôi đã có thể phân tích tệp kê khai đã hợp nhất và tìm ra nguyên nhân của sự cố và khắc phục sự cố.


2

điều này xảy ra với tôi vì tôi đã viết hoa các đường dẫn trong tệp kê khai. đã thay đổi:

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

đến

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

và nó đã được sửa


Bạn đã cứu ngày của tôi! Cảm ơn
Siva Kumar

2

Tôi gặp vấn đề tương tự ngày hôm nay và đang xem qua các câu trả lời ở đây.

Đối với tôi, sự khác biệt là ngày hôm qua nó hoạt động tốt, vì vậy tôi nhận ra rằng đó không thực sự là vấn đề cấu hình, cả cấu hình và Phiên bản Android Studio đều không thay đổi.

May mắn thay, tôi đã thử khởi động lại Android Studio trước khi thử bất kỳ câu trả lời nào khác và may mắn là điều đó đã giải quyết được vấn đề.

Vì vậy, đối với tất cả những người gặp phải vấn đề này: điều đầu tiên cần thử là khởi động lại Android Studio và chỉ khi điều đó không giải quyết được vấn đề, hãy thử các câu trả lời khác tại đây.


2

Tôi vừa gặp phải lỗi tương tự trong Android Studio 1.5.1. và chỉ tìm ra nguồn gốc của vấn đề. Tôi không chắc liệu nguyên nhân là do lỗi của con người hay một trục trặc kỳ lạ nào đó trong hoạt động của IDE, nhưng không có câu hỏi nào hiện có của StackOverflow về chủ đề này dường như cho thấy bất kỳ điều gì về điều này nên tôi nghĩ mình sẽ đăng nó như một câu trả lời.

Đối với tôi, một trong những thành viên trong nhóm của tôi hoặc chính IDE, đã thay đổi mục nhập tệp kê khai hoạt động của trình khởi chạy, khiến nó trông như thế này:

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

Trong khi thực tế, nó sẽ trông như thế này:

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

Vì vậy, hãy kiểm tra gấp đôi, gấp ba, gấp bốn lần định dạng hoạt động trình khởi chạy của bạn trong tệp kê khai và bạn có thể tiết kiệm thời gian cho mình.

Hi vọng điêu nay co ich.

CHỈNH SỬA: Tôi thực sự khuyên mọi người không nên sử dụng các câu trả lời đề xuất chọn hoạt động trình khởi chạy theo cách thủ công bên trong các tùy chọn cấu hình của mô-đun của bạn, vì điều này khiến ứng dụng không còn được hiển thị trong danh sách ứng dụng đã cài đặt trên cả Samsung Galaxy S5 Neo và Samsung Galaxy S6 (ít nhất là đối với tôi).


2

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

Nhấn ứng dụng -> Chỉnh sửa cấu hình
Sau giá trị thay đổi đó trong Khởi chạy trên "Không có gì"


1

Hãy đảm bảo trong tệp kê khai rằng tên gói giống với hoạt động chính của bạn


1
  1. Trong Android Studio, chuyển sang phối cảnh Dự án (không phải phối cảnh Android).

  2. Đảm bảo rằng dự án của bạn tuân theo cấu trúc mặc định của plugin gradle (tức là project_dir / app / src / main / java ... )

  3. Xóa tất cả các thư mục xây dựng và thư mục con mà bạn thấy.

  4. Trong thanh công cụ, nhấp vào Xây dựng -> Dự án sạch , sau đó nhấp vào Xây dựng -> Xây dựng lại dự án .

  5. Cố gắng chạy dự án.


1

Bạn có thể khiến Android Studio không phải phàn nàn bằng cách chuyển đến menu "Chỉnh sửa cấu hình" (nhấn "Shift" ba lần, nhập "Chỉnh sửa cấu hình"), sau đó thay đổi Tùy chọn khởi chạy> Khởi chạy thành "Không có gì".

Tôi có thể sẽ thêm một hoạt động chung có chứa hướng dẫn, chỉ để tránh bất kỳ sự nhầm lẫn nào.


Đây tiết kiệm thời gian của tôi
Sayali

1

Trong trường hợp của tôi, nó hoạt động khi tôi xóa thư mục .idea khỏi dự án (Project / .ida) và mở lại Android Studio một lần nữa.


Xóa thư mục .idea đã hữu ích trong trường hợp của tôi, Cảm ơn! Để làm rõ, tất cả các tệp có phần mở rộng ".iml" đều nằm trong thư mục .idea. Vui lòng KHÔNG xóa chỉ các tệp .iml vì điều này có thể dẫn đến các lỗi khác!
Cordis Audax Agrinova

0
  1. Nhấp chuột phải vào dự án và chọn Mở Cài đặt Mô-đun.
  2. Chuyển đến tab Nguồn trong mô-đun của bạn.
  3. Tìm thư mục src của bạn.
  4. Nhấp chuột phải vào nó và đánh dấu nó là Nguồn.

Điều này đã giải quyết được lỗi trong trường hợp của tôi.


0

Nếu bạn đã thay đổi tên của các thư mục (cấu trúc lớp), ví dụ com.dir.sample thành com.dir.sample1, thì sau đó, đừng quên thay đổi gói com.dir.sample thành com.dir.sample1.


0

Sửa đổi "Workspace.xml" (nhấn Ctrl + Shft + R để tìm kiếm)

  1. Sửa đổi tên hoạt động bằng tên gói

  2. Đảm bảo thay đổi "name =" USE_COMMAND_LINE "thành value =" false "

  3. Tải lại dự án

Làm xong!


Tôi muốn tìm kiếm bằng Ctrl + Shft + F, + R = thay thế F = tìm.
Shishdem

0

Đối với những người như tôi, những người đang vật lộn để tìm "tab Nguồn":

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

Ở đây, bạn phải đánh dấu thư mục "src" của mình bằng màu xanh lam (trước tiên hãy nhấp vào Đánh dấu là: Nguồn , sau đó trong thư mục src của bạn ) và bạn đã sẵn sàng.


0

Có hai bước bạn có thể thực hiện:

  1. Chuyển đến cấu hình và nhập tên hoạt động sẽ được khởi chạy
  2. Nếu nó vẫn không hoạt động Tắt chạy tức thì

0

Tôi đã thử tất cả các giải pháp, nhưng không hiệu quả ở tất cả. hơn là tôi đã cố gắng tắt Chạy tức thì trong studio Android của mình.

Đi tới Cài đặt hoặc Tùy chọn Android Studio (dành cho MAC) -> Xây dựng, Thực thi, Triển khai -> Chạy tức thì .

bỏ chọn chức năng Chạy tức thì và sau khi nhấp vào đồng bộ dự án với các tệp gradle từ menu tệp

bây giờ chạy bản dựng của bạn ...


Điều này không còn hợp lệ cho Android Studio 4.0+
Jorge E. Hernández

0

Trong một số trường hợp, bạn có thể có mô hình với một số categorytrường, nếu bạn sẽ cấu trúc lại nó ở tất cả mọi nơi, nó có thể cấu trúc lại nó trong tệp kê khai và sau đó và thẻ xml sẽ trở nên không hợp lệ.


0

Nhiều khả năng có thể xảy ra đối với loại trường hợp này (Không tìm thấy Hoạt động mặc định) Nếu tất cả mã đều ổn, đặc biệt là trên Manifest, chỉ cần Vô hiệu hóa bộ nhớ cache và khởi động lại studio,

Nhưng đôi khi nó xảy ra khi bạn có khai báo hoạt động trùng lặp trên tệp kê khai, không chỉ đối với Hoạt động chính, nó còn được kích hoạt bởi các hoạt động con.

Điều đó đã xảy ra với tôi, Không tìm thấy hoạt động mặc định vì tôi có các hoạt động con trùng lặp trên tệp kê khai, sau khi xóa hoạt động đó, mọi thứ đều tốt


0

Kiểm tra xem có bất kỳ thẻ trùng lặp nào trong AndroidManifest.xmltệp của bạn không .


0

Tôi đã hiểu rồi. Tôi đã thêm nhầm từ khóa cuối cùng trong khai báo hoạt động. Sau khi tôi loại bỏ nó, mọi thứ đều hoạt động!

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. Trong Android Studio

  2. Đi tới chỉnh sửa Cấu hình.

  3. Chọn ứng dụng.

  4. chọn con đường Hoạt động ăn trưa.

  5. áp dụng, OK.

    Cảm ơn!!


-1

Tên Hoạt động mặc định đã thay đổi (như SplashActivity -> SplashActivity1) và phù hợp với tôi

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.