Resource not found, missing item id

I reviewed this question, however, this did not help solve my problem:

I use ActionBarSherlock (version 4.4) in my application for compatibility in older versions. My application works fine on 4.1.2, but it crashes on 2.3.3. The application runs to the point mDrawerLayout.closeDrawer(mDrawerList); , after which it will work after that. I can’t understand what causes it to crash in older versions. I feel this is because he is trying to use something that does not exist in this version, but I can’t determine exactly what he is using. Does anyone see any code that seems wrong?

Error in logcat: Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1}

Logcat Error

 08-15 21:01:04.967: E/AndroidRuntime(789): FATAL EXCEPTION: main 08-15 21:01:04.967: E/AndroidRuntime(789): android.view.InflateException: Binary XML file line #17: Error inflating class <unknown> 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.createView(LayoutInflater.java:518) 08-15 21:01:04.967: E/AndroidRuntime(789): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.inflate(LayoutInflater.java:386) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.AbsListView.obtainView(AbsListView.java:1430) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.makeAndAddView(ListView.java:1745) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.fillDown(ListView.java:670) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.fillFromTop(ListView.java:727) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.ListView.layoutChildren(ListView.java:1598) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.AbsListView.onLayout(AbsListView.java:1260) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.LinearLayout.onLayout(LinearLayout.java:1047) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.layout(View.java:7175) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.ViewRoot.performTraversals(ViewRoot.java:1140) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.os.Handler.dispatchMessage(Handler.java:99) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.os.Looper.loop(Looper.java:123) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.app.ActivityThread.main(ActivityThread.java:3683) 08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Method.invokeNative(Native Method) 08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Method.invoke(Method.java:507) 08-15 21:01:04.967: E/AndroidRuntime(789): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 08-15 21:01:04.967: E/AndroidRuntime(789): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 08-15 21:01:04.967: E/AndroidRuntime(789): at dalvik.system.NativeStart.main(Native Method) 08-15 21:01:04.967: E/AndroidRuntime(789): Caused by: java.lang.reflect.InvocationTargetException 08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Constructor.constructNative(Native Method) 08-15 21:01:04.967: E/AndroidRuntime(789): at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.LayoutInflater.createView(LayoutInflater.java:505) 08-15 21:01:04.967: E/AndroidRuntime(789): ... 35 more 08-15 21:01:04.967: E/AndroidRuntime(789): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1} 08-15 21:01:04.967: E/AndroidRuntime(789): at android.content.res.Resources.loadDrawable(Resources.java:1681) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.view.View.<init>(View.java:1951) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.TextView.<init>(TextView.java:344) 08-15 21:01:04.967: E/AndroidRuntime(789): at android.widget.TextView.<init>(TextView.java:337) 08-15 21:01:04.967: E/AndroidRuntime(789): ... 38 more 

styles.xml from the values ​​folder:

 <resources> <style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar"> </style> <style name="AppTheme" parent="AppBaseTheme"> </style> </resources> 

Java file

 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub setTheme(R.style.Theme_Sherlock); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG,"Set Content View"); mTitle = (String) getTitle(); ChemTitles = getResources().getStringArray(R.array.chemistrycalcstrings); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, ChemTitles)); mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); getSupportActionBar().setDisplayHomeAsUpEnabled(true); Log.d(TAG,"Set Display Home"); getSupportActionBar().setHomeButtonEnabled(true); Log.d(TAG,"Set Home Button"); Log.d(TAG,"Setting ActbarDrawerToggle"); mDrawerToggle = new ActionBarDrawerToggle( this, mDrawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close ) { public void onDrawerClosed(View view){ getSupportActionBar().setTitle(mTitle); getSherlock().dispatchInvalidateOptionsMenu(); Log.d(TAG,"Drawer CLosing"); } public void onDrawerOpened(View drawerView){ getSupportActionBar().setTitle(mDrawerTitle); getSherlock().dispatchInvalidateOptionsMenu(); Log.d(TAG,"Drawer Opening"); } }; Log.d(TAG,"Set ActbarDrawerToggle"); mDrawerLayout.setDrawerListener(mDrawerToggle); Log.d(TAG,"Set ActbarDrawerToggle Listener"); if (savedInstanceState == null){ selectItem(0); } } private void selectItem(int position){ SherlockFragment frag = new TestFrament(); Bundle args = new Bundle(); args.putInt(TestFrament.ITEM_SEL, position); frag.setArguments(args); getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, frag).commit(); mDrawerList.setItemChecked(position, true); setTitle(ChemTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } 

EDIT / UPDATE

I looked through and commented on all the parts that included listview mDrawerList , and the application started directly with the action bar and there was no list in the box.

Activity_main.xml layout

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- As the main content view, the view below consumes the entire space available using match_parent in both dimensions. --> <LinearLayout android:id="@+id/content_frame" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- android:layout_gravity="start" tells DrawerLayout to treat this as a sliding drawer on the left side for left-to-right languages and on the right side for right-to-left languages. The drawer is given a fixed width in dp and extends the full height of the container. A solid background is used for contrast with the content view. --> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/> </android.support.v4.widget.DrawerLayout> 

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" android:gravity="center_vertical" android:paddingLeft="16dp" android:paddingRight="16dp" android:textColor="#fff" android:background="?android:attr/activatedBackgroundIndicator" android:minHeight="?android:attr/listPreferredItemHeightSmall"/> 

test_fragment_layout.xml

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragTextSherlock" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" android:gravity="center" android:padding="32dp" /> 

TestFragment.java

 public class TestFrament extends SherlockFragment { public static final String ITEM_SEL = "item_selected"; private TextView fragtv; public TestFrament() { // Empty constructor required for fragment subclasses } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.test_fragment_layout, container, false); int i = getArguments().getInt(ITEM_SEL); fragtv = (TextView) rootView.findViewById(R.id.fragTextSherlock); fragtv.setText(String.valueOf(i)); return rootView; } } 
+4
source share
3 answers

The problem was that the compiler did not tell me that I used elements that were not part of the compatibility and were not available in 2.3.3.

Look at the lines that I had to delete:

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" <-Removed android:gravity="center_vertical" android:paddingLeft="16dp" android:paddingRight="16dp" android:textColor="#fff" android:background="?android:attr/activatedBackgroundIndicator" <-Removed android:minHeight="?android:attr/listPreferredItemHeightSmall"/> <-Removed 
+5
source

To support lower versions, instead of deleting the following three options

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

In fact, you can replace with equivalent values ​​/ resources.

Equivalent values ​​can be obtained from https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml

Now,

+5
source

This often happens due to inaccessibility of the resource in the res folder. Several times, you simply copy the extract from another directory to the project drop-down folder, but forget to add this drawing from the IDE project explorer.

+1
source

Source: https://habr.com/ru/post/1497472/


All Articles