Getting android.content.res.Resources$NotFoundException: exception even when the resource is present in android

AndroidExceptionLayoutResourcesLandscape

Android Problem Overview


Please let me know where I am going wrong to get the error.

I am creating an app which have one of its activity to be only in landscape mode. So I added the following in AndroidManifest.xml file

<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>

I have created a folder like

> /res/layout-land

and add a layout called see_today_landscape_layout in it.

and in onCreate() I added the following

protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.see_today_landscape_layout);
....
}

But when I run my app I am getting the following error

02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main
02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4066)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread.access$2400(ActivityThread.java:135)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.os.Looper.loop(Looper.java:144)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread.main(ActivityThread.java:4937)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at java.lang.reflect.Method.invoke(Method.java:521)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at dalvik.system.NativeStart.main(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.content.res.Resources.getValue(Resources.java:892)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.content.res.Resources.getLayout(Resources.java:731)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.Activity.setContentView(Activity.java:1654)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at com.mid.kew.activities.LandScapeImageActivity.onCreate(LandScapeImageActivity.java:103)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
02-06 13:46:14.358: E/AndroidRuntime(13286): 	... 12 more

I crossed checked in R.java and it has the resource with the ID 7f03002b which the exception is looking for and it is present in there...

I cleaned and rebuild the project for say 5 times, but still the issue occurs.

Strange point is that this was working yesterday and it's not working today. The code is the same.

Android Solutions


Solution 1 - Android

For my condition the cause was taking int parameter for TextView. Let me show an example

int i = 5;
myTextView.setText(i);

gets the error info above.

This can be fixed by converting int to String like this

myTextView.setText(String.valueOf(i));

As you write int, it expects a resource not the text that you are writing. So be careful on setting an int as a String in Android.

Solution 2 - Android

  1. in eclipse, go to Project > Clean...
  2. select your project, then press OK
  3. relaunch the app

if it happens again delete the r.java file. it will generate automatically.

Solution 3 - Android

Since you are setting the layout explicitly you might want to try and put it in the default /layout folder not in the /layout-land since that is if you want Android to automatically handle rotation for you.

Solution 4 - Android

Try moving your layout xml from res/layout-land to res/layout folder

Solution 5 - Android

I just get this error on Android 6. I moved all drawables from drawable-v24 to drawable folder and the error is finally gone.

Solution 6 - Android

Check to make sure that your imports are correct. I had a similar problem where R was pointing to the Android system R file, not my local one.

Solution 7 - Android

This can happen due to a different language in the phone for which your code doesn't have the asset for. For example your preference.xml is placed in xml-en and you are trying to run your app in a phone which has French selected, the app will crash.

Solution 8 - Android

I got this error from yet another reason:

I had the file res/xml/data.xml and I was trying to load it with Resources class like this:

Resources.getSystem().getXml(R.xml.data);

However this is incorrect as the method Resources.getSystem() returns a global shared Resources object that provides access to only system resources.

The correct way is as follows (from inside Activity):

this.getResources().getXml(R.xml.data);

Solution 9 - Android

In my case my Build Tools version in my build.gradle for the app module was outdated on an old project. Updating it fixed the issue:

android {
    ...
    buildToolsVersion "19.0.1"
    ...

Updated to the latest build tools version (25.0.1) and sync'd the project and all was well again.

Solution 10 - Android

I deleted folders build inside a project. After cleaned and rebuilt it in Android Studio. Then corrected errors in build.gradle and AndroidManifest.

Solution 11 - Android

This can also cause some trouble: Accidentally one of my layouts was parked in my tablet resources folder, so I got this error only with phone layout. The phone layout simply had no suitable layout file.

I worked again after moving the layout file in the correct standard folder and a following project rebuild.

Solution 12 - Android

Make sure that the R you are pointing to is the correct one. I had a problem very similar to this, where an import got inserted by Eclipse that pointed to the System R file rather than the project one. It took a lot of head scratching. Hope this helps.

Solution 13 - Android

You have screen orientation set to landscape in your xml. If you have used eclipse to generate this file it would have created under res/layout-land/ folder.But when you open activity in Portrait mode application will search for xml in res/layout-port/ folder or the regular res/layout/. If you didn't have xml for portrait mode your application will crash.

Solution 14 - Android

I have fixed the by this way:

Create a folder in your resource directory name "drawable-nodpi" and then move yours all resources in this directory from others drawable directory.

Now clean your project and then rebuilt. Run again hopefully it will work this time without any resource not found exception.

Solution 15 - Android

I got this error when I was trying to access Bundle data from One Intent by using getInt("ID").

I solved it by using getString("ID").

From Activity1 i had

Intent intent=new Intent(this,ActivityB.class);
intent.putExtra("data",data)// 
startActivity(intent);

On Activity B,

Bundle bundle=getIntent().getExtras();
if(extras!=null){
// int x=extras.getInt("Data"); This Line gave me error int 
x=Integer.parseInt(extras.getString("Data")); // This solved the problem.
}

Solution 16 - Android

For me cache invalidation and restart didn't work. I removed the .idea and .gradle folders. If you do that, don't forget that things like build logs or something might go away though.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNikView Question on Stackoverflow
Solution 1 - AndroidYekmer SimsekView Answer on Stackoverflow
Solution 2 - AndroidprakashView Answer on Stackoverflow
Solution 3 - AndroidmbwasiView Answer on Stackoverflow
Solution 4 - AndroidAshish KumarView Answer on Stackoverflow
Solution 5 - AndroidNasser GhodsianView Answer on Stackoverflow
Solution 6 - AndroidRay BenjaminView Answer on Stackoverflow
Solution 7 - AndroidArslan MehboobView Answer on Stackoverflow
Solution 8 - AndroidastasiakView Answer on Stackoverflow
Solution 9 - AndroidTash PemhiwaView Answer on Stackoverflow
Solution 10 - AndroidCoolMindView Answer on Stackoverflow
Solution 11 - AndroidwolweView Answer on Stackoverflow
Solution 12 - AndroidRbenView Answer on Stackoverflow
Solution 13 - AndroidPrakashView Answer on Stackoverflow
Solution 14 - Android0xAliHnView Answer on Stackoverflow
Solution 15 - Androidukurikiyeyesu dieudonneView Answer on Stackoverflow
Solution 16 - AndroidBastian SpringerView Answer on Stackoverflow