获取android.content.res.Resources $ NotFoundException:即使资源存在于android中也是exception

请让我知道我哪里错了,得到错误

我正在创build一个应用程序,其中一个活动只能处于横向模式。 所以我在AndroidManifest.xml文件中添加了以下内容

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

我已经创build了一个文件夹

/ RES /布局,土地

并在其中添加一个名为see_today_landscape_layout的布局。

并在onCreate()我添加了以下内容

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

但是当我运行我的应用程序,我收到以下错误

 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 

我穿过R.java检查,它有资源ID 7f03002b这是例外正在寻找,它存在于那里…

我清理并重build了5次这个项目,但问题仍然存在。

奇怪的是,这是昨天工作,今天不工作。 代码是一样的。

请让我知道该怎么做。

我困惑和沮丧。

拉吉

  1. 在eclipse中,转到Project> Clean …
  2. select您的项目,然后按确定
  3. 重新启动应用程序

如果再次发生,请删除r.java文件。 它会自动生成。

对于我的情况,原因是TextView的整数参数。 让我举个例子

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

获取上面的错误信息。

这可以通过像这样将int转换为string来解决

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

当你写int,它期望一个资源,而不是你正在写的文本。 所以要小心在android中设置一个整数string。

由于您明确地设置了布局,因此您可能希望尝试将其放置在不在/ layout-land中的默认/布局文件夹中,因为如果您希望Android自动为您处理旋转。

将您的布​​局xml从res / layout-land移动到res / layout文件夹。 这个对我有用

检查以确保您的导入是正确的。 我有一个类似的问题,其中R指向andriod系统R文件,而不是我本地的。 我希望这有帮助。

这可能是由于手机中的语言不同,您的代码没有资产。 例如,您的preference.xml放置在xml-en中,并且您尝试在已select法语的手机中运行您的应用程序,该应用程序将崩溃。

我从另一个原因得到这个错误:

我有文件res/xml/data.xml ,我试图加载像这样的Resources类:

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

然而,这是不正确的,因为方法Resources.getSystem()返回一个全局共享资源对象,只提供对系统资源的访问。

正确的方法如下(从Activity内部):

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

这也可能会导致一些麻烦:我的一个布局被遗忘在我的平板电脑资源文件夹中,所以我只能通过电话布局得到这个错误。 手机布局根本没有合适的布局文件。

在正确的标准文件夹中移动布局文件并重新编译后,我再次工作。

确保你指的R是正确的。 我有一个非常相似的问题,其中一个导入由Eclipse插入,指向System R文件而不是项目。 它花了很多头抓。 希望这可以帮助。

您的屏幕方向设置为横向在您的XML。 如果你已经使用eclipse来生成这个文件,它将在res / layout-land / folder下创build。但是当你在肖像模式下打开活动时,应用程序将在res / layout-port /文件夹或常规的res / layout / 。 如果您没有肖像模式的xml,您的应用程序将崩溃。

我删除了一个项目内build文件夹。 在Android Studio中清理并重build之后。 然后更正build.gradle和AndroidManifest中的错误。

在我的情况下,我的构build工具版本在我的应用程序模块的build.gradle过时了一个旧的项目。 更新它解决了这个问题:

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

更新到最新的构build工具版本(25.0.1),并同步了项目,一切都很好。

我已经通过这种方式修复了:

在资源目录名称"drawable-nodpi"创build一个文件夹,然后从其他可绘制目录中移动此目录中的所有资源。

现在清理你的项目,然后重build。 再次运行,希望它能在这个时候工作,没有任何资源没有发现exception。

即使它已经接受了答案,但我有不同的答案。 大多数情况下,当你分配一些文本来查看时会发生这种情况。 例如 。

  currectText.setText(progress); 

但如果参数不是string,它会给你

  android.content.res.Resources$NotFoundException: String resource ID 

所以把参数作为string。 使用'+'运算符很简单

  currectText.setText(""+progress); 

即时通讯int在setText方法只是转换为string问题解决

当我试图通过使用getInt(“ID”)从One Intent访问Bundle数据时,出现了这个错误。

我通过使用getString(“ID”)解决了它。

从Activity1我有

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

在活动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. } 

Eclipse:Project> Clean

为我工作。 当我从其他应用程序的布局复制到一个新的应用程序时,我经常得到这个。

烦人。