ไม่พบกิจกรรมเริ่มต้นใน Android Studio


93

ฉันเพิ่งอัปเกรดเป็น Android Studio 0.2.8 และฉันได้รับข้อผิดพลาดที่ระบุว่า "ไม่พบกิจกรรมเริ่มต้น" เมื่อฉันพยายามแก้ไขการกำหนดค่าการเรียกใช้

เมื่อฉันเปิด Android Studio ฉันได้รับข้อผิดพลาดนี้ "อนุญาตให้เข้าถึงจากเธรดการจัดส่งเหตุการณ์เท่านั้น"

กิจกรรมที่ฉันใช้เป็นกิจกรรมส่วนย่อย

จนถึงตอนนี้ฉันได้ลองสร้างใหม่และทำให้แคช / รีสตาร์ทไม่ถูกต้อง ทั้งสองไม่มีประโยชน์

โปรดแจ้งให้เราทราบว่าจะแก้ไขปัญหาได้อย่างไร


คำตอบ:


45

ใน Android สตูดิโอ, คลิกขวาที่โครงการและเลือกเปิดการตั้งค่าโมดูล จากนั้นไปที่แท็บSourcesในโมดูลของคุณค้นหาโฟลเดอร์srcคลิกขวาแล้วทำเครื่องหมายเป็นSources (สีฟ้า)

แก้ไข:ไม่มีแท็บแหล่งที่มาใน Android Studio เวอร์ชันที่ใหม่กว่า แต่คุณสามารถแก้ไขไฟล์build.gradleแทน: https://stackoverflow.com/a/22028681/1101730 (ขอบคุณสำหรับความคิดเห็น Josh)


27
ฉันจะทำสิ่งนี้ใน0.6.1 ได้อย่างไร ฉันไม่เห็นแท็บแหล่งที่มา
lschlessinger

7
ฉันก็ไม่เหมือนกัน. มีคุณสมบัติการลงนามรสชาติประเภทการสร้างและการพึ่งพา
Junior Mayhé

4
ฉันไม่มีแท็บ "แหล่งที่มา" ดังนั้นฉันจึงแก้ไขไฟล์ build.gradle แทน: stackoverflow.com/a/22028681
Josh

2
สมบูรณ์แบบ! ขอบคุณที่ช่วยเหลือ @Micer Guys ในโครงการ IntelliJ ของคุณกด 'F4' จากนั้นคุณมีสามแท็บ (Sources, Paths, Dependencies) ไปที่แท็บ 'Sources' และตรวจสอบว่าโฟลเดอร์ 'src' (ในโครงสร้างต้นไม้) เป็นสีน้ำเงินหรือไม่ หากไม่กด 'Alt + S' เพื่อรวมโฟลเดอร์ต้นทางในโครงสร้างโครงการ
Ryan Amaral

1
@IgorGanapolsky คุณพูดถูกดูเหมือนว่าแท็บ Sources จะถูกลบออกใน Android Studio เวอร์ชันที่ใหม่กว่า ตรวจสอบคำตอบของ Josh
Micer

51

คุณได้เพิ่มACTION_MAINตัวกรองความตั้งใจในกิจกรรมหลักของคุณแล้วหรือยัง หากคุณไม่เพิ่มสิ่งนี้แสดงว่า Android จะไม่ทราบว่าจะเปิดกิจกรรมใดเป็นกิจกรรมหลัก

เช่น:

<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
ใช่เสร็จแล้ว ฉันแก้ไข "การเข้าถึงได้รับอนุญาตจากเธรดการจัดส่งเหตุการณ์เท่านั้น" โดยใช้ oracle JDK แทน openJDK กิจกรรมเริ่มต้นที่ขาดหายไปยังคงมีอยู่แม้ว่า
วิปัสสนาวิชัยรังสรรค์

5
นอกจากนี้ยัง"com.package.name.MyActivity"สามารถใส่ชื่อได้หาก<intent-filter>องค์ประกอบทั้งหมดอยู่ภายใน<activity>องค์ประกอบที่สอดคล้องกับ MyActivity ของคุณในเนมสเปซของคุณ
Xavi Montero

ฮะผมเปลี่ยนชื่อเป็นระดับที่มีชื่อFilterรวมทั้งตัวแปรทั้งหมดชื่อfilterและเห็นได้ชัด Android สตูดิโอตัดสินใจที่จะรวมและAndroidManifest.xml <intent-*filter*>คำตอบนี้ทำให้ฉันตรวจสอบอีกครั้งAndroidManifest.xmlและช่วยให้ฉันพบข้อบกพร่อง =)
Stephan Henningsen

เอกสารนี้อยู่ที่ไหน หาไม่เจอ…
mirabilos

32

ฉันประสบปัญหาเดียวกันขณะนำเข้าโครงการไปยัง Android Studio ซึ่งอาจเกิดจากการที่โครงการได้รับการพัฒนาบน Android Studio เวอร์ชันก่อนหน้ากว่าที่ติดตั้งในคอมพิวเตอร์

สิ่งที่แก้ไขได้คือการเลือก:

File -> Invalidate Caches / Restart...

Invalidate and Restartแล้วเลือก


1
ขอบคุณ @syntagma มากคำแนะนำของคุณช่วยแก้ปัญหาของฉันได้หลังจากใช้ความพยายามมาหลายชั่วโมง
MMG

16

หากคุณไม่มีแท็บและคุณเริ่มต้นด้วยกิจกรรมที่ว่างเปล่าให้ลองทำเช่นนี้ ด้านล่างนี้เป็นตัวอย่างโค้ดตัวอย่าง:

<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>

ตอนนี้ไปที่ไฟล์ AndroidManifest.xml ของคุณ ถัดไปคัดลอกตัวกรองความตั้งใจจากรหัสนี้ ดูไฟล์รายการของคุณดีมากและวางตัวกรองความตั้งใจในตำแหน่งที่แน่นอนในโค้ดด้านบน (หลังส่วน .yourActivityName> ของไฟล์ Manifest) ฉันหวังว่านี่จะช่วยได้


13

หากคุณยังคงได้รับข้อผิดพลาดที่ระบุว่า "ไม่พบกิจกรรมเริ่มต้น" เมื่อคุณพยายามแก้ไขการกำหนดค่าการรันแม้ว่าจะดำเนินการ:

แคชโมฆะและเริ่มต้นใหม่

จากนั้นลองลบโฟลเดอร์ Settings / Preferences:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

หรือบน Mac:

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

หากคุณเปลี่ยนชื่อแพ็กเกจของคุณหรือคุณเปลี่ยนสาขาจากการควบคุมเวอร์ชันของคุณบางครั้ง Android Studio จะไม่รู้จักไฟล์ทั้งหมดและทำให้สิ่งต่างๆยุ่งเหยิง ทางออกเดียวที่ใช้ได้ผลสำหรับฉันคือปิด AS แล้วลบออก AndroidStudioXY (โดยที่ XY คือหมายเลขเวอร์ชันของคุณ) ซึ่ง @ Phileo99 ชี้ให้เห็น
Zbarcea Christian

1
คุณช่วยชีวิตฉัน! ทำสิ่งนี้ / <USER_HOME_DIR> /. AndroidStudioPreview3.2
nadafafif

ยินดีต้อนรับ @nadafafif! โปรดโหวตคำตอบของฉันถ้ามันช่วยคุณได้
Phileo99

@ Phileo99 ทำอย่างนั้นแล้ว. ไม่สามารถหยุดตัวเองจากการทำมันได้ :) ไชโย คอยช่วยเหลือเช่นนั้น
nadafif

นั่นช่วยได้ แต่โปรดทราบว่าคุณจะดาวน์โหลดสิ่งต่างๆมากมาย ใช้เวลาดาวน์โหลดประมาณ 15 นาที
Valgaal

10

เมื่อฉันคลิก "เปิดการตั้งค่าโมดูล" ไม่มีแท็บ "แหล่งที่มา"ฉันคิดว่าเป็นเพราะแอนดรอยด์สตูดิโอเวอร์ชันใหม่กว่าถูกลบออกไป (ฉันใช้ 0.8.14) ฉันจึงต้องทำสิ่งนี้แทน:

เพิ่มบรรทัดเหล่านี้ลงในbuild.gradleไฟล์ภายในandroid { ... }บล็อก:

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

หลังจากแก้ไขแฟ้มคลิกเครื่องมือ> Android> โครงการ Sync กับไฟล์

เครดิตสำหรับคำตอบนี้และความคิดเห็นนี้


9

ต่อไปนี้เป็นเคล็ดลับสำหรับฉัน จากRun -> แก้ไขการกำหนดค่า

ป้อนคำอธิบายภาพที่นี่


ฉันขอคำแนะนำเกี่ยวกับวิธีแก้ปัญหานี้เนื่องจากทำให้แอปพลิเคชันไม่ปรากฏในรายการแอปพลิเคชันที่มีอยู่ใน Samsung Galaxy S5 Neo และ Samsung Galaxy S6 อีกต่อไป
Teun Kooijman

3

ปัญหาของฉันเกิดจากข้อผิดพลาดเพิ่มเติมที่เกิดขึ้นในบางครั้งโดยระบุ

Manifest Merger failed with multiple errors in Android Studio

ในที่สุดสิ่งที่ทำให้เกิดปัญหาของฉันคือความจริงที่ว่ามีหลายรายการ (รายการดีบักและรายการในโมดูลใหม่ที่ฉันเพิ่งนำเข้า) และไม่สามารถรวมเข้าด้วยกันได้อย่างถูกต้องเนื่องจากเหตุนี้ หลังจากเห็นคำตอบนี้ฉันสามารถวิเคราะห์ไฟล์ Manifest ที่ผสานและค้นหาสาเหตุของปัญหาและแก้ไขได้


2

สิ่งนี้เกิดขึ้นกับฉันเพราะฉันใช้ตัวพิมพ์ใหญ่เส้นทางในไฟล์ Manifest เปลี่ยนแปลง:

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

ถึง

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

และได้รับการแก้ไข


คุณช่วยวันของฉัน! ขอบคุณ
Siva Kumar

2

วันนี้ฉันพบปัญหาเดียวกันและกำลังหาคำตอบที่นี่

สำหรับฉันความแตกต่างคือเมื่อวานนี้มันใช้งานได้ดีดังนั้นฉันคิดว่ามันไม่น่าจะเป็นปัญหาการกำหนดค่าจริง ๆ ทั้งการกำหนดค่าหรือเวอร์ชันของ Android Studio ก็ไม่มีการเปลี่ยนแปลง

โชคดีที่ฉันลองรีสตาร์ท Android Studio ก่อนที่จะลองใช้คำตอบอื่น ๆ และโชคดีที่แก้ไขปัญหาได้

ดังนั้นสำหรับทุกคนที่พบปัญหานี้สิ่งแรกที่ต้องลองคือรีสตาร์ท Android Studio และเฉพาะในกรณีที่ไม่สามารถแก้ปัญหาได้ให้ลองใช้คำตอบอื่น ๆ ที่นี่


2

ฉันเพิ่งพบข้อผิดพลาดเดียวกันใน Android Studio 1.5.1 และเพิ่งพบต้นตอของปัญหา ฉันไม่แน่ใจว่าสาเหตุนั้นเป็นความผิดพลาดของมนุษย์หรือความผิดพลาดแปลก ๆ ในพฤติกรรมของ IDE แต่ไม่มีคำถาม StackOverflow ที่มีอยู่เกี่ยวกับเรื่องนี้ดูเหมือนจะแสดงอะไรเกี่ยวกับเรื่องนี้ดังนั้นฉันจึงคิดว่าฉันโพสต์เป็นคำตอบอยู่ดี

สำหรับฉันหนึ่งในสมาชิกในทีมของฉันหรือ IDE เองได้เปลี่ยนรายการรายการกิจกรรมตัวเรียกใช้งานทำให้มีลักษณะดังนี้:

        <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>

ในความเป็นจริงควรมีลักษณะดังนี้:

        <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>

ดังนั้นโปรดตรวจสอบรูปแบบกิจกรรมตัวเรียกใช้งานของคุณเป็นสองเท่าสามเท่าในรายการและคุณอาจสามารถช่วยตัวเองได้บ้าง

หวังว่านี่จะช่วยได้

แก้ไข: ฉันขอแนะนำให้ทุกคนอย่าไปหาคำตอบที่แนะนำให้เลือกกิจกรรมตัวเรียกใช้งานด้วยตนเองภายในตัวเลือกการกำหนดค่าของโมดูลของคุณเนื่องจากสิ่งนี้ทำให้แอปพลิเคชันไม่แสดงในรายการแอปที่ติดตั้งบนทั้ง Samsung Galaxy S5 อีกต่อไป Neo และ Samsung Galaxy S6 (อย่างน้อยสำหรับฉัน)




1
  1. ใน Android Studio ให้เปลี่ยนเป็นมุมมองของโครงการ (ไม่ใช่มุมมองของ Android)

  2. ตรวจสอบให้แน่ใจว่าโครงการของคุณเป็นไปตามโครงสร้างเริ่มต้นของปลั๊กอิน gradle (เช่นproject_dir / app / src / main / java ... )

  3. ลบโฟลเดอร์สร้างและโฟลเดอร์ย่อยทั้งหมดที่คุณเห็น

  4. ในแถบเครื่องมือคลิกรูปร่าง -> โครงการทำความสะอาดแล้วสร้าง -> สร้างโครงการ

  5. ลองดำเนินโครงการ


1

คุณสามารถทำให้ Android Studio ไม่บ่นได้โดยไปที่เมนู "แก้ไขการกำหนดค่า" (แตะ "Shift" สามครั้งพิมพ์ "แก้ไขการกำหนดค่า") จากนั้นเปลี่ยนตัวเลือกการเปิด> เปิดตัวเป็น "ไม่มีอะไร"

ฉันอาจจะเพิ่มกิจกรรมทั่วไปที่มีคำแนะนำเพื่อหลีกเลี่ยงความสับสน


สิ่งนี้ช่วยประหยัดเวลาของฉัน
Sayali

1

ในกรณีของฉันมันใช้งานได้เมื่อฉันลบโฟลเดอร์. ida ออกจากโปรเจ็กต์ (Project / .ida) และเปิด Android Studio ขึ้นมาใหม่อีกครั้ง


การลบโฟลเดอร์. ida ช่วยในกรณีของฉันขอบคุณ! เพื่อความชัดเจนไฟล์ทั้งหมดที่มีนามสกุล ".iml" อยู่ในโฟลเดอร์ .idea โปรดอย่าลบเฉพาะไฟล์. iml เนื่องจากอาจทำให้เกิดข้อผิดพลาดอื่น ๆ !
Cordis Audax Agrinova

0
  1. คลิกขวาที่โครงการและเลือกเปิดการตั้งค่าโมดูล
  2. ไปที่แท็บ Sources ในโมดูลของคุณ
  3. ค้นหาโฟลเดอร์ src ของคุณ
  4. คลิกขวาและทำเครื่องหมายเป็น Sources

สิ่งนี้แก้ไขข้อผิดพลาดในกรณีของฉัน


0

หากคุณเปลี่ยนชื่อไดเร็กทอรี (โครงสร้างคลาส) เช่น com.dir.sample เป็น com.dir.sample1 หลังจากนั้นอย่าลืมเปลี่ยนแพ็กเกจ com.dir.sample เป็น com.dir.sample1


0

แก้ไข "Workspace.xml" (กด Ctrl + Shft + R เพื่อค้นหา)

  1. แก้ไขชื่อกิจกรรมด้วยชื่อแพ็กเกจ

  2. อย่าลืมเปลี่ยน "name =" USE_COMMAND_LINE "เป็น value =" false "

  3. โหลดโครงการซ้ำ

เสร็จแล้ว!


ฉันจะค้นหาด้วย Ctrl + Shft + F, + R = แทนที่โดยที่ F = find
Shishdem

0

สำหรับผู้ที่มีปัญหาในการค้นหา "แท็บแหล่งที่มา":

ป้อนคำอธิบายภาพที่นี่

ที่นี่คุณต้องทำเครื่องหมายโฟลเดอร์ "src" เป็นสีน้ำเงิน (คลิกแรกในMark as: Sourceจากนั้นในโฟลเดอร์srcของคุณ) เท่านี้ก็เรียบร้อย


0

มีสองขั้นตอนที่คุณสามารถทำได้:

  1. ไปที่การกำหนดค่าและป้อนชื่อกิจกรรมที่จะเปิดตัว
  2. หากยังใช้งานไม่ได้ ปิดการใช้งานทันที

0

ฉันได้ลองวิธีแก้ปัญหาทั้งหมดแล้ว แต่ไม่ได้ผลเลย กว่าที่ฉันพยายามปิดใช้งานการรันทันทีในสตูดิโอ Android ของฉัน

ไปที่การตั้งค่าหรือค่ากำหนดของ Android Studio (สำหรับ MAC) -> Build, Execution, Deployment -> Instant Runทันใจเรียกใช้

ยกเลิกการเลือกฟังก์ชันการทำงานทันทีและหลังจากคลิกซิงค์โปรเจ็กต์กับไฟล์ gradleจากเมนูไฟล์

ตอนนี้เรียกใช้งานสร้างของคุณ ...


สิ่งนี้ใช้ไม่ได้กับ Android Studio 4.0+ อีกต่อไป
Jorge E.Hernández

0

ในบางกรณีคุณสามารถมีโมเดลที่มีcategoryฟิลด์บางฟิลด์ได้หากคุณจะรีแฟคเตอร์ในทุกที่มันอาจทำการรีแฟคเตอร์ในไฟล์ manifest จากนั้นแท็ก xml จะไม่ถูกต้อง


0

ความเป็นไปได้หลายอย่างอาจเกิดขึ้นได้สำหรับกรณีประเภทนี้ (ไม่พบกิจกรรมเริ่มต้น) หากโค้ดทั้งหมดใช้ได้ดีโดยเฉพาะอย่างยิ่งใน Manifest เพียงแค่ต้อง Invalidate Cache และรีสตาร์ทสตูดิโอ

แต่บางครั้งก็เกิดขึ้นเมื่อคุณมีการประกาศกิจกรรมที่ซ้ำกันในรายการไม่เพียง แต่สำหรับกิจกรรมหลักเท่านั้น แต่ยังถูกกระตุ้นโดยกิจกรรมของเด็กด้วยเช่นกัน

ที่เกิดขึ้นกับฉันไม่พบกิจกรรมเริ่มต้นเนื่องจากฉันมีกิจกรรมลูกที่ทำซ้ำในรายการหลังจากลบไปแล้วทุกอย่างก็เรียบร้อยดี



0

ฉันคิดออกแล้ว ฉันเพิ่มคีย์เวิร์ดสุดท้ายผิดพลาดในการประกาศกิจกรรม เมื่อฉันลบออกทุกอย่างก็ใช้ได้!

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. ใน Android Studio

  2. ไปที่แก้ไข Configuration

  3. เลือกแอป

  4. เลือกเส้นทางกิจกรรมอาหารกลางวัน

  5. ใช้ตกลง

    ขอบคุณ !!


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.