10

Ứng dụng của tôi khởi chạy và khởi động tốt trên điện thoại Samsung Galaxy S3 chạy Android 4.1.2, nhưng khi tôi thử nghiệm cùng một ứng dụng trên Motorola Droid X chạy Android 2.3.4 ứng dụng bị treo trước khi mọi thứ được hiển thị trên màn hình Droid X của tôi.

Nhật ký của tôi bên dưới. Thật không may, nó không chỉ cho tôi chính xác những gì một phần của mã của tôi nó là không, nhưng nó có vẻ như một cái gì đó để làm với bố trí của tôi vì những trường hợp ngoại lệ:

08-09 10:43:39.686: E/AndroidRuntime(3192): FATAL EXCEPTION: main 
08-09 10:43:39.686: E/AndroidRuntime(3192): android.view.InflateException: Binary XML file line #11: Error inflating class <unknown> 
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: java.lang.reflect.InvocationTargetException` 
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: android.content.res.Resources$NotFoundException: 
Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1} 

Log Cát:

08-09 10:43:39.686: E/AndroidRuntime(3192): FATAL EXCEPTION: main 
08-09 10:43:39.686: E/AndroidRuntime(3192): android.view.InflateException: Binary XML file line #11: Error inflating class <unknown> 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.LayoutInflater.createView(LayoutInflater.java:518) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.LayoutInflater.inflate(LayoutInflater.java:386) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.AbsListView.obtainView(AbsListView.java:1456) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.ListView.makeAndAddView(ListView.java:1821) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.ListView.fillDown(ListView.java:686) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.ListView.fillFromTop(ListView.java:754) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.ListView.layoutChildren(ListView.java:1670) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.AbsListView.onLayout(AbsListView.java:1286) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.layout(View.java:7184) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.layout(View.java:7184) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.layout(View.java:7184) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1047) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.layout(View.java:7184) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.layout(View.java:7184) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.layout(View.java:7184) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1140) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.os.Looper.loop(Looper.java:130) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.app.ActivityThread.main(ActivityThread.java:3806) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at dalvik.system.NativeStart.main(Native Method) 
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: java.lang.reflect.InvocationTargetException 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at java.lang.reflect.Constructor.constructNative(Native Method) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.LayoutInflater.createView(LayoutInflater.java:505) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  ... 35 more 
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1} 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.content.res.Resources.loadDrawable(Resources.java:1719) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.view.View.<init>(View.java:1951) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.TextView.<init>(TextView.java:453) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  at android.widget.TextView.<init>(TextView.java:446) 
08-09 10:43:39.686: E/AndroidRuntime(3192):  ... 38 more 
08-09 10:43:42.201: I/Process(3192): Sending signal. PID: 3192 SIG: 9 
+2

Ứng dụng của bạn có sử dụng bất kỳ tính năng nào không có sẵn trong API 10 không? – DrYap

+0

Bạn có thể hiển thị tệp xml của mình không. Giống như DrYap cho biết bạn đang sử dụng thứ gì đó không có sẵn cho API 10 và có sẵn cho API 16 hoặc được giới thiệu trong API – Manu

+0

tiếp theo của tôi nhờ các nhận xét, vâng tôi đã tìm ra và đăng câu trả lời của tôi bên dưới. Có tài liệu tham khảo nào đó để biết những gì không có trong API 11 trở xuống không? Cụ thể hơn trong câu trả lời của tôi, giá trị android: attr? – nommer

Trả lời

14

Đã sửa lỗi !!

Nhìn vào nó nhiều hơn và có vẻ như nó có liên quan đến ArrayAdapter cũng như bố cục của tôi. Tôi đã sử dụng bố cục tùy chỉnh (drawer_list_item.xml) cho ArrayAdapter có mã ICS cụ thể mà tôi đoán, vì vậy tôi phải loại bỏ một số dòng khỏi tệp XML đó và ứng dụng được khởi chạy tốt trên API Android 10 (cụ thể là Android 2.3. 4). Các dòng cụ thể trong file layout của tôi mà gây ra vấn đề là:

android:background="?android:attr/activatedBackgroundIndicator" 
android:minHeight="?android:attr/listPreferredItemHeightSmall" 

Đây là mã trong SherlockFragmentActivity tôi đã gây ra bố trí ngoại lệ/tai nạn:

m_drawerList.setAdapter(new ArrayAdapter<String>(getSupportActionBar().getThemedContext(),R.layout.drawer_list_item, m_drawerNames)); 

OLD đang drawer_list_item.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:textAppearance="?android:attr/textAppearanceListItemSmall"<!-- Deleted line--> 
android:gravity="center_vertical" 
android:paddingLeft="16dp" 
android:paddingRight="16dp" 
android:textColor="#fff" 
android:background="?android:attr/activatedBackgroundIndicator"<!-- Deleted line--> 
android:minHeight="?android:attr/listPreferredItemHeightSmall"/> <!-- Deleted line--> 

đang drawer_list_item.xml CỐ ĐỊNH:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="center_vertical" 
android:padding="16dp" 
android:textColor="#fff" /> 
+2

Có, một cách đơn giản để tìm ra nguyên nhân chính xác gây ra lỗi là thay đổi (tạm thời) 'target' trong tệp' project.properties' thành 'android-10'. Điều này làm cho Eclipse làm nổi bật các tập tin và dòng có vấn đề. – Stan

+0

Cảm ơn bạn rất nhiều vì đã chia sẻ giải pháp! –

+0

Cảm ơn!Câu trả lời trở nên rõ ràng hơn nhiều khi tôi thay đổi một dòng trong tệp XML của mình và sau đó Lint đã gắn cờ ba dòng như yêu cầu cấp API sau đó. Đạo đức của câu chuyện: thực hiện chỉnh sửa ngẫu nhiên trên các tệp XML và THEN các lỗi hiển thị. – Gravitoid

0

Bạn đang sử dụng ActionBarSherlock hoặc HoloEverywhere? Tôi đã gặp vấn đề này rất nhiều khi sử dụng các thư viện đó và cố gắng tạo kiểu/chủ đề.

Về cơ bản, một số thuộc tính được chỉ định theo mặc định trong ICS +, nhưng không được chỉ định trong các phiên bản Android cũ hơn. Vì vậy, bạn phải sao chép tài nguyên, như được hiển thị ở đây: http://actionbarsherlock.com/theming.html

Đăng mã cho chủ đề/kiểu có thể hữu ích cho chúng tôi để xem có gì sai.

0

Không có mã nào khác Tôi không thể cho bạn biết chính xác lý do ứng dụng bị lỗi. Tất cả những gì chúng tôi biết là bạn có thể sử dụng một số tính năng chỉ có sẵn cho các API cao hơn. Đăng xml-bố trí của bạn và có thể các lớp học của bạn.

Tuy nhiên, hãy cố gắng bao gồm Thư viện hỗ trợ. Điều đó thường giải quyết được vấn đề.

Các vấn đề liên quan