获取android.content.res.Resources $ NotFoundException:即使在android中存在资源时也是异常

Nik*_*Nik 79 resources layout android landscape exception

请告诉我出错的地方.

我正在创建一个应用程序,其活动之一仅在横向模式下.所以我在AndroidManifest.xml文件中添加了以下内容

<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>
Run Code Online (Sandbox Code Playgroud)

我创建了一个像这样的文件夹

/ RES /布局,土地

并在其中添加名为see_today_landscape_layout的布局.

onCreate()我添加以下内容

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.see_today_landscape_layout);
....
}
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

我在R.java中交叉检查,它有一个ID为7f03002b的资源,该异常正在寻找并且它存在于那里......

我清理并重建项目5次,但问题仍然存在.

奇怪的一点是,这在昨天工作,今天不起作用.代码是一样的.

Yek*_*sek 206

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

int i = 5;
myTextView.setText(i);
Run Code Online (Sandbox Code Playgroud)

获取上面的错误信息.

这可以通过转换intString这样来修复

myTextView.setText(String.valueOf(i));
Run Code Online (Sandbox Code Playgroud)

在您编写时int,它期望资源不是您正在编写的文本.所以,要小心在设定的int作为StringAndroid中.

  • 谢谢,原因是 setText 是接受 String 和资源 Id 的重载方法。然后你传递一个 int 它寻找资源 Id (2认同)

小智 38

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

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

  • 如果这不能解决你的问题,为什么它会得到复选标记? (106认同)
  • 不能解决这个问题(Android工作室) (6认同)
  • 正如我之前提到的......我确实清除了bin和gen文件夹并重建了应用程序......仍然没有工作...... (2认同)
  • 如果发布应用程序发生这种情况,你会怎么做? (2认同)

mbw*_*asi 11

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


Ash*_*mar 8

尝试将布局xml从文件夹移动res/layout-landres/layout文件夹


Nas*_*ian 5

我刚刚在 Android 6 上遇到此错误。我将所有可绘制对象从可绘制-v24 移动到可绘制文件夹,错误终于消失了。