android.view.InflateException: บรรทัดไฟล์ XML แบบ # 12: เกิดข้อผิดพลาดในการขยายคลาส <unknown>


147

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

ใครสามารถอธิบายได้ว่าทำไมข้อผิดพลาดนี้เกิดขึ้น? และฉันจะทำอย่างไรเพื่อแก้ไขปัญหานี้

ซ้อนกัน

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------

-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)

นี่คือผลลัพธ์ของ XML อย่างไรก็ตามข้อผิดพลาดดังกล่าวเกิดขึ้นใน xml อื่น ๆ

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
    </ViewFlipper>

    <LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
        <TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>

    </LinearLayout>

    <Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />

    <FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>               
    </FrameLayout>
</merge>

ตรวจสอบสิ่งนี้ช่วยฉันได้! stackoverflow.com/questions/9480972/android-tablelayout-error
— user1974235

คำตอบ:


266

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

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


4
@vnportnoy ฉันมีข้อผิดพลาดเหมือนกันเมื่อฉันลบภาพ
— Harin Kaklotar

4
ฉันเชื่อว่าฉันไม่มี drawable ในใบสมัครของฉัน
— Arturas M

3
ลองตรวจสอบชุดภาษาของคุณซึ่งอาจเป็นไปได้ว่าทรัพยากรสตริงหายไป นี่เป็นสาเหตุของปัญหาในกรณีของฉัน
— Mohammed Subhi Sheikh Quroush

หากปัญหาของคุณเกี่ยวกับการทดสอบเครื่องมือลองใช้วิธีนี้: stackoverflow.com/q/24904445
— Jerry Destremps

หลังจากลบ imageview ออกจาก xml ของฉันแล้วยังมีข้อผิดพลาดเกิดขึ้นใน classpath 'com.android.tools.build:gradle:3.0.0-alpha2' และคอมไพล์ 'com.android.support.constraint: ข้อ จำกัด เลย์เอาต์: 1.0.2'
— Subho

24

ViewFlipperโหลดรูปภาพทั้งหมดลงในหน่วยความจำระหว่างเลย์เอาต์ขยายออก เนื่องจากภาพของฉันมีขนาดใหญ่จึงต้องใช้หน่วยความจำจำนวนมากฉันจึงแทนที่ViewFlipperด้วยImageSwitcherซึ่งสามารถเปลี่ยนภาพด้วยภาพเคลื่อนไหวที่ชอบViewFlipperแต่มันโหลดภาพเดียวในเวลา


23

สิ่งนี้สามารถเกิดขึ้นได้หากคุณใช้VectorDrawableไลบรารีการสนับสนุนและลืมที่จะใช้app:srcCompatแทนandroid:src

ข้อผิดพลาดที่แน่นอนคือ: บรรทัดไฟล์ XML แบบ #XX: เกิดข้อผิดพลาดในการขยายคลาส ImageView

ดูลิงค์นั้น


เมื่อคุณเปิดใช้งานคุณควรใช้แอพเสมอ: srcCompat
— Mohamed ALOUANE

แต่นี่จะไม่สร้างความผิดพลาดแบบสุ่ม
— Menna-Allah Sami

11

ฉันมีข้อผิดพลาดเดียวกันเมื่อสร้างมุมมองที่กำหนดเองที่มีเพียงตัวสร้างเดียวพยายามกำหนดตัวสร้างทั้งหมดสำหรับมุมมองที่กำหนดเองของคุณ

   public CustomWebView(Context context) {
        super(context);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

11

ฉันรู้ว่าคำถามได้รับคำตอบแล้ว แต่ฉันยังคงโพสต์ด้วยความคิดที่อาจมีใครบางคนประสบกับปัญหาแบบนี้

ในกรณีที่เป็นปัญหาของฉันคือฉันกำลังโหลดแอปพลิเคชันของฉันไปยังโทรศัพท์ซึ่งอ้างอิงเลย์เอาต์จาก res / layout / โฟลเดอร์และค่าสำหรับ @dimens จาก res / values ​​/ dimens ที่นี่เป็น font_22 ซึ่งพยายามเข้าถึงและกำหนดเป็น res / values-xlarge / dimens

ฉันกำลังอัปเดต UI ของโครงการที่มีอยู่จริง ๆ

ฉันพบปัญหานี้เพราะฉันใช้ IDE Eclipse ที่ฉัน ctrl + space สำหรับคำใบ้ในขณะที่เขียน xml สำหรับโฟลเดอร์เลย์เอาต์มันแสดงค่าทั้งหมดจากค่าเช่นเดียวกับโฟลเดอร์ค่า -xlarge โดยไม่คำนึงถึงโฟลเดอร์ที่ฉันกำลังเขียน

ฉันยังรู้ว่าค่าในไฟล์ทั้งสองควรเหมือนกันกับแมปสำหรับหน้าจอที่แตกต่างกัน

หวังว่าสิ่งนี้อาจช่วยให้ใครบางคนประสบปัญหาโง่ ๆ แบบนี้


9

ฉันพบข้อผิดพลาดเดียวกันและพบว่าเหตุผลหลักคือ:

ใช้บริบทของแอปพลิเคชันเพื่อขยายมุมมอง

การขยายด้วยบริบทกิจกรรมแก้ไขข้อบกพร่อง


6

ขนาดภาพของฉันแค่ 14Kb แต่ปัญหาคือผู้ออกแบบให้ฉัน 1011px x 1819px (ความละเอียดสูงเกินไปทำให้เกิด InflateException)


6

ในกรณีที่ใครบางคนได้รับปัญหาที่คล้ายกันฉันมีปัญหาดังกล่าวในขณะที่ขยายมุมมอง:

View.inflate(getApplicationContext(), R.layout.my_layout, null)

แก้ไขโดยแทนที่getApplicationContext()ด้วยthis


5

ฉันมีข้อผิดพลาดนี้เพราะฉันเลือกชุดรูปแบบเป็นชุดรูปแบบวัสดุ แต่ขณะที่ฉันพยายามเรียกใช้แอปบน 4.4.2 มันทำให้เกิดข้อผิดพลาดนี้

วิธีแก้ไข: เลือก Theme_holo เป็นชุดรูปแบบ


4.2.2ปัญหาของฉันอาจจะคล้ายกับคุณเช่นผมเห็นความผิดพลาดเฉพาะใน แต่ฉันจะเปลี่ยนจากธีมวัสดุเป็น Theme_holo ได้ที่ไหน ฉันไม่เห็นคำหลักวัสดุในของฉันหรือstyles.xml v21/styles.xmlดูคำถามของฉัน: stackoverflow.com/questions/37883677/…
— Katedral Pillon

4

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

แก้ไข: ฉันแน่ใจว่าคุณตรวจสอบแล้ว แต่สิ่งที่อยู่ในบรรทัดที่ 12 ของไฟล์ XML ที่คุณใช้สำหรับเค้าโครง TourActivity?


ฉันได้อ่านปัญหานี้แล้ว นี่ไม่ใช่กรณีของฉัน (อย่างน้อยฉันก็ไม่เห็น) การเพิ่มสแต็คกับคำถาม
— Solvek

อัปเดตคำตอบคุณสามารถโพสต์ XML ได้หรือไม่ หากคุณไม่รังเกียจให้โพสต์ XML ทั้งหมดถ้าไม่ใหญ่เกินไป
— Kevin Coppock

เพิ่ม XML ใน
— Quesion

น่าเสียดายที่ฉันไม่มีประสบการณ์ในการใช้ผสานหรือ ViewFlipper ... ไฟล์ XML ทั้งหมดนี้เกิดขึ้นกับการใช้งานผสานหรือ ViewFlipper หรือไม่
— Kevin Coppock

ไม่ไฟล์อื่นไม่มีการรวมฟลิปเปอร์ แต่ยังคงมีปัญหาเดียวกัน
— Solvek

4

สำหรับฉันแล้วข้อความแสดงข้อผิดพลาดไม่เพียงพอใน log cat ดังนั้นนี่คือสิ่งที่ฉันทำเพื่อค้นหาสาเหตุที่ทำให้เกิดปัญหา:

(ในข้อความแสดงข้อผิดพลาดของบันทึกการทำงานของแมวแจ้งว่ามีข้อผิดพลาดเกิดขึ้นขณะขยายเค้าโครงเฉพาะใน HomeFragment.java ของฉัน)

  1. ฉันวางเบรกพอยต์ก่อนที่โครงร่างจะพองออก
  2. ฉันรันแอปพลิเคชันในโหมดแก้ไขข้อบกพร่องจนกว่าจะถึงจุดพักที่เฉพาะเจาะจง
  3. ฉันเลือกบรรทัดด้วยเคอร์เซอร์ของฉันและวิ่งไปEvaluate expressionที่มัน:
    • Run > Evaluate Expression หรือ alt - F8
  4. ผลลัพธ์แสดงให้ฉันเห็นข้อมูลเพิ่มเติมเกี่ยวกับแหล่งที่มาของปัญหาซึ่งในกรณีของฉันคือไฟล์ที่ใช้งานได้tools:targetApi="lollipop"(ข้อผิดพลาดเกิดขึ้นกับอุปกรณ์รุ่นเก่าเท่านั้น)

ขอบคุณ! สิ่งนี้ช่วยให้ฉันพบปัญหา!
— Sergey Stasishin

4

ฉันพบข้อผิดพลาดเดียวกันและใช้เวลาสองวันในการระบุว่าข้อผิดพลาดคืออะไร

ข้อผิดพลาดเป็นเพียงเพราะฉันพยายามใช้: android:background

ค่อนข้างมากกว่า: app:srcCompat

ในไฟล์ SVG

ในกรณีของคุณฉันเชื่อว่าเป็นอย่างนั้น

<ImageView 
    android:scaleType="fitXY" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/tour_11"      <-- the error is here !
 />

ฉันแนะนำให้ใช้วิธีนี้

เพิ่มสิ่งนี้ไปยังแอปbuild.gradleของคุณ

android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

และ

<androidx.appcompat.widget.AppCompatImageView  <-- use **AppCompatImageView** not **ImageView**
        android:scaleType="fitXY" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:srcCompat="@drawable/tour_11"
     />

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


3

ฉันรู้ว่ามันเป็นคำถามที่ตอบแล้ว แต่ฉันไม่เห็นสาเหตุที่ฉันเผชิญ

มันเป็นที่ที่ Android Studio วาง drawable ของฉันใน / drawable-V24 ตัวจำลองของฉันคือ API 23 ดังนั้นในที่สุดก็หาไม่เจอ

วิธีแก้ปัญหาคือการย้าย drawable ทั้งหมดไปยังโฟลเดอร์ / drawable (ไม่ใช่ -24)


ฉันยังมีกรณีเดียวกัน
— Rafael


2

ฉันมีข้อผิดพลาดเดียวกันและฉันแก้ไขการย้าย drawable จากโฟลเดอร์ drawable-mdpi ไปยังโฟลเดอร์ drawable ใช้เวลาสักครู่ในการตระหนักเพราะใน Eclipse ทุกอย่างทำงานได้อย่างสมบูรณ์ในขณะที่ใน Android Studio ฉันได้รับข้อผิดพลาด runtime ที่น่าเกลียดเหล่านี้

แก้ไขหมายเหตุ: หากคุณย้ายจาก eclipse ไปยัง Android Studio และโครงการของคุณมาจาก eclipse มันอาจเกิดขึ้นดังนั้นโปรดระวังว่าใน Android Studio อาจต่างจาก eclipse เล็กน้อย


2

ในกรณีของข้อผิดพลาดนี้เกิดขึ้นเมื่อผมใช้ปุ่มการกระทำลอยตัวandroid:backgroundTint="#000"และการตั้งค่า จากนั้นไม่ได้ตั้งค่าbackgroundTintและแก้ไขปัญหา หวังว่ามันจะเป็นประโยชน์สำหรับคุณ


ขอบคุณที่เป็นปัญหาในกรณีของฉัน จำเป็นต้องใช้แทนapp:backgroundTint android:backgroundTint
— Drago

2

สำหรับฉันปัญหาของฉันคือว่าฉันเป็น

android:background="?attr/selectableItemBackground"

เป็นพื้นหลัง LinearLayout เมื่อฉันลบการทดสอบที่ผ่าน


1

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


1

ฉันมีข้อผิดพลาดเดียวกันเมื่อฉันรันแอพของฉันบน API lvl 16 (26 ใช้ได้) เป็นเพราะฉันใช้?attrr/colorAccentในรูปทรงที่วาดได้:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="8dp" />

    <solid android:color="@attr/colorAccent" />

</shape>

แทนที่ด้วยสีปกติแก้ไขปัญหาของฉัน


1

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยลบ drawable-v24 ด้วย (24) ด้านหน้าของรูปภาพในโฟลเดอร์ drawable และแทนที่ด้วย drawable สามัญ


1

ฉันรู้ว่ากระทู้นี้เก่า แต่ก็ยังตอบคำถามนี้อยู่เพื่อไม่ให้ใครอื่นใช้เวลานอนไม่หลับ

ฉันถูก refactoring โครงการเก่าที่มีรูปแบบไฟล์แอตทริบิวต์ hardcoded android:maxLength = 500ทั้งหมดที่มีอยู่เช่น ดังนั้นผมจึงตัดสินใจที่จะลงทะเบียนในของฉัน เป็นไฟล์res/dimen<dimen name="max_length">500</dimen>

เสร็จสิ้นการเปลี่ยนโครงสร้างไฟล์เกือบ 30 ไฟล์ใหม่ด้วย res-value ของฉัน คาดเดาอะไร InflateExceptionครั้งต่อไปที่ฉันวิ่งโครงการของฉันมันเริ่มขว้างปาเดียวกัน

เป็นวิธีแก้ไขปัญหาที่จำเป็นในการทำซ้ำการเปลี่ยนแปลงทั้งหมดของฉันและเก็บค่าทั้งหมดเหล่านั้นเหมือนเดิม

TLDR;

ขั้นตอนที่ 1: ทุกอย่างทำงานได้ดี

ขั้นตอนที่ 2: เพื่อเพิ่มการบำรุงรักษาของฉันฉันแทนที่android:maxLength = 500ด้วย<dimen name="max_length">500</dimen>และandroid:maxLength = @dimen/max_lengthนั่นคือสิ่งที่มันผิดทั้งหมด (ชนด้วยInflateException)

ขั้นตอนที่ 3: ทั้งหมดทำงานไม่ดี

ขั้นตอนที่ 4: Re-ทำทุกงานของฉันโดยเปลี่ยนอีกครั้งandroid:maxLength = @dimen/max_lengthกับandroid:maxLength = 500.Everything ได้รับการแก้ไข

ขั้นตอนที่ 5: ทุกอย่างทำงานได้ดี


1

แก้ไขได้โดยการย้ายรายการที่สามารถเบิกได้ทั้งหมดของฉันจาก drawable-v24 ไปยัง drawable


0

ฉันยังต้องเผชิญกับปัญหาที่คล้ายกัน ในขณะที่สำหรับทุกคนนี้อาจเป็นปัญหาของประเพณีที่ไม่ดีในรหัสเช่น

  1. แท็กเค้าโครงที่ไม่ถูกต้องใน XML
  2. โหลดทรัพยากรจำนวนมากไปยัง ImageView โดยตรงส่งผลให้ OOM
  3. ปัญหาเกี่ยวกับการใช้งานสไตล์

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

ฉันแก้ไขปัญหาของฉันด้วยบริบท BAD (โดยใช้ApplicationContextแทนที่จะเป็นActivityในระยะเวลา 4 วัน! ดังนั้นลองแก้ปัญหาดูว่า Happy Coding !!


0

ฉันประสบปัญหาเดียวกันฉันใช้แท็กดูใน xml แทนดู การเปลี่ยนคลาสดูเป็นแก้ไขปัญหา

หวังว่ามันจะช่วยคุณเช่นกัน ..


0

เราต้องตรวจสอบเวอร์ชั่น API ฉันเคยให้สีพื้นหลังกับสิ่งที่ฉันLinearLayoutชอบ

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/as_royalblue"
        android:orientation="vertical"></LinearLayout>

แน่นอนฉันมีข้อผิดพลาดเดียวกันas_royalblue.xmlภายในdrawableโฟลเดอร์

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:endColor="@color/royalblue_s"
        android:startColor="@color/royalblue_e" />
</shape>

และฉันจะแก้ไขได้อย่างไรจริง ๆ แล้วดูเหมือนว่าปัญหาของ Api ดังนั้นเราต้องตรวจสอบระดับ api ว่าอยู่เหนือ API 24 หรือไม่ดังนั้นเราจึงสามารถใช้วิธีที่เราชอบได้ แต่ถ้ามันต่ำกว่า 24 เราต้องหลีกเลี่ยงการใช้งาน juts ให้สีปกติหรือสีเดียวไม่ใช่สีไล่ระดับสีผสม

fun checkAPI_N(): Boolean {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N)
            return true
        else
            return false
    }

ให้ id กับ linearlayouts ของคุณและตั้งค่าพื้นหลังถ้ามันตกลง

 if(UtilKotlin.checkAPI_N()){
            linlay_act_menu_container.setBackgroundResource(R.drawable.a_6)
            linlay_act_menu_logo.setBackgroundResource(R.drawable.as_strain)
        }else {//todo normal color background setting}

0

ในกรณีของฉันฉันต้องระบุชื่อแพคเกจที่สมบูรณ์ขององค์ประกอบ UI ห้องสมุดที่ฉันใช้ในไฟล์เค้าโครงของฉัน


0

สำหรับฉันมันเกิดขึ้นเพราะฉันพยายามผสมภาพกราฟิกส์เวกเตอร์ xml กับ png ธรรมดาในไฟล์เลย์เอาต์เดียวกัน

หลังจากที่ฉันเปลี่ยนกราฟิกแบบเวกเตอร์ xml ด้วย pngs มันก็เริ่มทำงานได้


0
  • ฉันเพิ่งแก้ปัญหานี้เพียงแค่ลบภาพของคุณจาก drawable (v24) และเพียงวางไว้ในโฟลเดอร์ drawable ซึ่งใช้งานได้สำหรับฉัน


0

ฉันมีข้อผิดพลาดเดียวกันCrashlyticsจากอุปกรณ์แปลก ๆ : Motorola One Vision Android 5.1 และ RAM 20 GB (ฟรี), รูทอุปกรณ์นี้มาพร้อมกับ Android 9.0, RAM 4 GB

อาจมีคนพยายามแฮ็คแอพที่ฉันกำลังพัฒนาและมีปัญหาเกี่ยวกับ APK ที่หลากหลาย ดังนั้นไม่พบ drawable และแอปพลิเคชันส่งข้อขัดข้อง

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