sendUserActionEvent () เป็นโมฆะ


90

ฉันมี doozy จริงที่นี่ เมื่อฉันคลิกที่สปินเนอร์เปิดรายการเมนูหรือเปิดเมนูบริบทเมื่อคลิกนานฉันจะได้รับข้อความ Logcat เดียวกัน:

08-02 21:20:57.264: E/ViewRootImpl(31835): sendUserActionEvent() mView == null

แท็กและข้อความเป็นViewRootImpl sendUserActionEvent() mView == nullฉันไม่พบสิ่งที่เป็นประโยชน์เกี่ยวกับเรื่องนี้บนเว็บ ฉันค้นหาแหล่งที่มาของ Android และพบข้อมูลอ้างอิงบางอย่างmViewแต่ไม่พบไฟล์ที่พิมพ์ข้อความบันทึกนี้ สำหรับการอ้างอิงฉันใช้ Samsung Galaxy S4 ที่ใช้ 4.2.2 หรือ API 17 ข้อความเดียวกันนี้จะไม่เกิดขึ้นเมื่อทำการดีบักบน Nexus 7 ที่ใช้ Android 4.3 ความคิดใด ๆ ? นี่เป็นปัญหาเฉพาะของ Samsung หรือไม่



ตรวจสอบคำตอบของฉันสำหรับปัญหาเดียวกันอาจแก้ไขรหัสของคุณstackoverflow.com/questions/23016155/…
AJ

คำตอบ:


93

ฉันยังขัดขวางสิ่งเดียวกันใน S4 ฉันได้ทดสอบแอปใน Galaxy Grand, HTC, Sony Experia แต่ได้ใน s4 เท่านั้น คุณสามารถเพิกเฉยได้เนื่องจากไม่เกี่ยวข้องกับแอปของคุณ


คุณมีข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้หรือคุณรู้ไหมว่าเหตุใดจึงเกิดขึ้น
crocboy

2
คุณเชื่อมต่ออินเทอร์เน็ตในขณะที่เปิด Wi-Fi อยู่หรือไม่? สิ่งนี้จะปรากฏขึ้นหากไม่มีการเชื่อมต่อกับอินเทอร์เน็ต
App Work

34
WIFI / ทฤษฎีการเชื่อมต่อไม่ถูกต้อง ทั้งสองกำลังทำงานให้ฉัน แต่ฉันยังคงได้รับข้อผิดพลาดนี้ (บน S4)
radley

2
บางครั้งข้อความ Logcat ด้านบนจะนำหน้าด้วยข้อความที่ให้ข้อมูลเพิ่มเติม: "พยายามที่จะสิ้นสุดเหตุการณ์การป้อนข้อมูล แต่ตัวรับเหตุการณ์อินพุตถูกกำจัดไปแล้ว"
Hartmut Pfitzinger

1
ฉันคิดว่าข้อผิดพลาดนี้เกี่ยวข้องกับเวอร์ชันใหม่จาก Android บนอุปกรณ์ฉันมีปัญหานี้ใน Note 3 ที่มีเวอร์ชัน 5.0 ในขณะที่ฉันไม่มีปัญหากับ Note 3 ที่มีเวอร์ชัน 4.4.2 .. + ฉันคิดว่ามันเกี่ยวข้องกัน ไปยังกล่องโต้ตอบเนื่องจากเกิดขึ้นเมื่อกล่องโต้ตอบป๊อปอัปปรากฏขึ้นเพื่อป้อนรหัสผ่านบลูทู ธ
Chris Sim

5

ฉันแก้ไขปัญหานี้ในโทรศัพท์ Galaxy S4 ของฉันโดยการแทนที่ context.startActivity (addAccountIntent); ด้วย startActivity (Intent ใหม่ (Settings.ACTION_ADD_ACCOUNT));


3
แก้ไข. นี่คือสิ่งที่แก้ปัญหาเดียวกันใน API เดียวกันสำหรับฉัน ไม่จำเป็นต้องเรียก context.startActivity () ถ้าคุณอยู่แล้วในบริบทที่คุณต้องการ เพียงแค่เรียก startActivity () ก็เพียงพอแล้วและไม่ส่งผลกับข้อผิดพลาดนั้น ขอบคุณทุกคน.
Shad

คุณช่วยกรุณาใส่รหัสตัวอย่างเพื่อช่วยในเรื่องนี้ได้ไหม ขอขอบคุณ.
Brandon

1
Intent addAccountIntent = เจตนาใหม่ (Settings.ACTION_ADD_ACCOUNT); addAccountIntent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); addAccountIntent.putExtra (Settings.EXTRA_AUTHORITIES, สตริงใหม่ [] {"com.app.yourapp"}); startActivity (addAccountIntent);
droid-zilla

1
@AmitSinha เกี่ยวกับกิจกรรม / ส่วนของคุณ ส่วนในรหัสของคุณที่คุณจะเปิดกิจกรรมอื่น
Neon Warge

0

ปัญหาเดียวกันใน Galaxy Tab และบน Xperia S หลังจากถอนการติดตั้งและติดตั้งอีกครั้งดูเหมือนว่าจะหายไป

รหัสที่ปรากฏขึ้นทันทีเพื่อทำให้เกิดปัญหานี้คือ:

public void unlockMainActivity() {
    SharedPreferences prefs = getSharedPreferences("CALCULATOR_PREFS", 0);
    boolean hasCode = prefs.getBoolean("HAS_CODE", false);
    Context context = this.getApplicationContext();
    Intent intent = null;

    if (!hasCode) {
        intent = new Intent(context, WellcomeActivity.class);
    } else {
        intent = new Intent(context, CalculatingActivity.class);
    }
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    (context).startActivity(intent);
}

0

แม้ว่าฉันจะประสบปัญหาที่คล้ายกันหลังจากที่ฉันทำการแก้ไขโค้ดที่เกี่ยวข้องกับเคอร์เซอร์

public boolean onContextItemSelected(MenuItem item) 
{
        AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
        Cursor c = (Cursor)adapter.getItem(info.position);
        long id = c.getLong(...);
        String tempCity = c.getString(...);
            //c.close();
...
}

หลังจากที่ฉันแสดงความคิดเห็น //c.close (); มันทำงานได้ดี ลองใช้ในตอนท้ายของคุณและอัปเดตการตั้งค่าเริ่มต้นเป็น ... ฉันมีมุมมองรายการใน Fragment และพยายามลบและรายการจากรายการผ่าน contextMenu


0

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


0

มันเป็นข้อผิดพลาดในอุปกรณ์ Samsung ทั้งหมดวิธีแก้ปัญหาคือ: ใส่บรรทัดนี้ในประกาศกิจกรรมของคุณใน Manifest

android:configChanges="orientation|screenSize"

เมื่อคุณเริ่มกิจกรรมคุณควรทำสิ่งนี้:

Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.setType(Settings.ACTION_SYNC_SETTINGS);
CurrentActivity.this.startActivity(intent);
finish();

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

วิธีสร้าง VideoView แบบเต็มหน้าจอ

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