获取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次这个项目,但问题仍然存在。
奇怪的是,这是昨天工作,今天不工作。 代码是一样的。
请让我知道该怎么做。
我困惑和沮丧。
拉吉
- 在eclipse中,转到Project> Clean …
- select您的项目,然后按确定
- 重新启动应用程序
如果再次发生,请删除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
为我工作。 当我从其他应用程序的布局复制到一个新的应用程序时,我经常得到这个。
烦人。