我正在研究我的android程序,当我尝试测试时,我突然开始收到错误“android.content.res.Resources $ NotFoundException:Resource ID#0x7f030027”我做的最后一个重大改变是添加了动作栏通过支持库,但我已经工作正常了。除此之外,我添加了一个新类,但即使我删除了类及其相关文件,错误仍然会弹出。我已经尝试清理项目并多次重启Eclipse但无济于事。
这是堆栈跟踪,以防万一在翻译中丢失:
01-21 19:05:53.125: E/AndroidRuntime(18599): FATAL EXCEPTION: main
01-21 19:05:53.125: E/AndroidRuntime(18599): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.blackhat.htmlparsingtest/com.blackhat.htmlparsingtest.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030027
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.access$700(ActivityThread.java:143)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.os.Handler.dispatchMessage(Handler.java:99)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.os.Looper.loop(Looper.java:137)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.main(ActivityThread.java:4950)
01-21 19:05:53.125: E/AndroidRuntime(18599): at java.lang.reflect.Method.invokeNative(Native Method)
01-21 19:05:53.125: E/AndroidRuntime(18599): at java.lang.reflect.Method.invoke(Method.java:511)
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
01-21 19:05:53.125: E/AndroidRuntime(18599): at dalvik.system.NativeStart.main(Native Method)
01-21 19:05:53.125: E/AndroidRuntime(18599): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030027
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.content.res.Resources.getValue(Resources.java:1026)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2131)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.content.res.Resources.getLayout(Resources.java:865)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:309)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.Activity.setContentView(Activity.java:1914)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
01-21 19:05:53.125: E/AndroidRuntime(18599): at com.blackhat.htmlparsingtest.MainActivity.onCreate(MainActivity.java:39)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.Activity.performCreate(Activity.java:5179)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-21 19:05:53.125: E/AndroidRuntime(18599): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
01-21 19:05:53.125: E/AndroidRuntime(18599): ... 11 more
此外,我已经检查了R.java文件并且资源肯定存在,但正如我提到的清理项目,删除R文件并重新启动Eclipse不会做任何事情。然而,我觉得应该提到的一件事是我找到了两个R.java文件,一个在我的项目文件夹中,还有BuildConfig.Java。另一个是在android.support.v7.appcompat中。我知道appcompat可能会导致一些问题所以我认为值得一提,以防万一。
我甚至无法使我的代码工作如何,所以任何帮助都会受到赞赏,如果您需要任何其他信息,请告诉我们!
答案 0 :(得分:86)
您可以检查您的R档案Resources$NotFoundException: Resource ID #0x7f030027
。它会告诉你哪个资源正在创建问题。作为替代解决方案,我认为您可能只有setText
或任何内容只有int
。正如您所知,编译器将查找相应的资源值。所以,只需将空字符串连接到""
答案 1 :(得分:16)
我得到了这个例外:
android.content.res.Resources $ NotFoundException:资源ID#0x7f02004f
我正在呼叫PNG Icon
的 ... \应用\ SRC \主\水库\抽拉-21 强>
当我把PNG Icon
放进去的时候
... \ app \ src \ main \ res \ drawable 我打电话给它,
我的问题消失了
BTW XML
来自\drawable-21
答案 2 :(得分:8)
也有同样的问题。
但事实证明,当我在IDE中移动时,我错误地将布局资源(xml)从布局目录移动到 layout-land 。
我把它搬回去了。
希望这有助于某人。
答案 3 :(得分:5)
对我来说,在创建布局文件时,它落在layout-land
文件夹中,因此是例外。
希望它会帮助别人。
答案 4 :(得分:5)
在我的情况下,在更新到Android Studio版本后出现错误:3.0 Canary 6,我修复了它,将其降级到以前的版本3.0 Canary-5和构建工具canary-5。
这个问题与api 19及以下
上的矢量绘图的一些不兼容性有关编辑: 看起来这个问题在 Android Studio版本:3.0 Canary 7
上得到了解决答案 5 :(得分:3)
我试图将图像文件(png,jpg)从 drawable-v24 移到 drawable
它解决了问题
答案 6 :(得分:2)
a)您的任何资源xml文件(字符串,布局,动画等等)都可能出错。而your.package.name.R无法使用该错误进行编译
EX:
<string name="main_header">My problem wasn't in java it was in this string</string>
错误:撇号'
需要以反斜杠\
更正:
<string name="main_header">My problem wasn\'t in java it was in this string</string>
,或者
b)你导入了错误的&#34; R&#34;进入你的班级。确保您导入your.package.name.R
而不是android.R
EX:
//You DO NOT want this, unless you are working directly with android's
resources, not your own in your project
import android.R
<强>校正:强>
// You want to reference your project's resources, not Android OS's
import your_package_name_here.R
希望这会有所帮助,Happy Coding!
答案 7 :(得分:2)
我刚刚遇到同样的问题 - 清理和重建项目为我解决了问题!
答案 8 :(得分:2)
我在Android 4.2.2上遇到此错误,但在Android 5和Android 6上没有。 原因是我在drawable-v21文件夹中放了一些矢量图标(导航抽屉的xml文件),因为默认情况下android生成的导航抽屉图标例如ic_menu_gallery.xml驻留在drawable-v21文件夹中。将这些xml文件(我生成而不是默认文件)移动到drawable文件夹解决了我的问题。不要将默认生成的图标移动到drawable,否则可能会导致重复异常。
答案 9 :(得分:0)
您可以使用
从项目资源中调用字符串 Resources().getSystem().getString(
R.string.my_string_id)
指全球资源。要引用您的项目资源,请直接从您的活动中执行getString():
this.getString(
R.string.my_string_id); // From within your activity class.
myActivity.getString(
R.string.my_string_id); // From other classes as instance reference.
答案 10 :(得分:0)
在我的情况下,我在滚动视图中使用自定义样式作为我的垂直滚动条,如下所示:
<ScrollView
android:id="@+id/scroller"
style="@style/scrollbar_shape_style"
..>
我的风格就像:
<style name="scrollbar_shape_style">
...
我将第一部分更改为:
<ScrollView
android:id="@+id/scroller"
android:theme="@style/scrollbar_shape_style"
并将父母添加到这样的样式中:
<style name="scrollbar_shape_style" parent="LightTheme">
问题解决了。
答案 11 :(得分:0)
如果你在resource.xml中使用vector drawable,它在API版本19或更低版本上有<layer-list>
,那么你将获得此异常
答案 12 :(得分:0)
看看这个链接,也许它会对你有所帮助,这是同样的问题。如果清理项目没有帮助您尝试删除您的r.java文件,它将自行生成。 Getting android.content.res.Resources$NotFoundException: exception even when the resource is present in android
答案 13 :(得分:0)
答案 14 :(得分:0)
答案 15 :(得分:0)
当我第一次使用BottomNavigationDrawer小部件时遇到了ResourceException问题。尽力为所有可能的尺寸添加所有资源,最后,我通过删除所有drawable-v21和drawable-v24文件夹摆脱了问题,只保留了常规的drawable文件夹。
答案 16 :(得分:0)
使用自定义UI库面临此问题,因此app:srcCompt不可用。我使用的是最新的gradle build(v3.4.1),降级到v3.2.1后,此问题已解决。
答案 17 :(得分:0)
就我而言,我正在为TextView.setText()
设置一个整数值。因为它是一个int,所以假设它不是一个资源ID,当然不是这种情况。
year = 1947;
textView.setText(year) ------>>>> Error!
通过将整数值转换为字符串来修复它-
textView.setText(year + "");
or
textView.setText(String.valueOf(year));
答案 18 :(得分:-1)
您可能正在从当前设备开发更新的Android版本。 尝试下载适合您的测试设备的SDK。
答案 19 :(得分:-2)
您可能会使用相同的资源照片两次。
当我使用照片两次时发生这种情况:在主屏幕中第一次时间然后使用了另一项活动中的相同照片。