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.