Android 资源文件找不到 android.content.res.Resources$NotFoundException: Resource ID #0x7f030029

先说下我的问题,这是错误日志。

android.content.res.Resources$NotFoundException: Resource ID #0x7f030029
    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:279)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2310)
    at android.content.res.Resources.getLayout(Resources.java:1293)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:421)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at android.view.View.inflate(View.java:23389)
    at com.cloudmind.activity.MainActivity$MyListAdapter.getView(MainActivity.java:451)
    at android.widget.AbsListView.obtainView(AbsListView.java:2428)
    at android.widget.ListView.makeAndAddView(ListView.java:2083)
    at android.widget.ListView.fillDown(ListView.java:793)
    at android.widget.ListView.fillFromTop(ListView.java:859)
    at android.widget.ListView.layoutChildren(ListView.java:1816)
    at android.widget.AbsListView.onLayout(AbsListView.java:2226)
    at android.view.View.layout(View.java:19781)
    at android.view.ViewGroup.layout(ViewGroup.java:6144)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:19781)
    at android.view.ViewGroup.layout(ViewGroup.java:6144)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:19781)
    at android.view.ViewGroup.layout(ViewGroup.java:6144)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2674)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2377)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1515)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7266)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:981)
    at android.view.Choreographer.doCallbacks(Choreographer.java:790)
    at android.view.Choreographer.doFrame(Choreographer.java:721)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:967)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:101)
    at android.os.Looper.loop(Looper.java:166)
    at android.app.ActivityThread.main(ActivityThread.java:7425)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

 

我解决问题的路程

发现问题之后就发R文件里边找这个ID #0x7f030029,发现能找到,是个layout 文件

网上一顿找资料,发现主要还是三个问题

1.R文件引用错误

2.inflate 文件的时候 R.Layout.****, 写成了R.id.*****

3.文本渲染的时候 tv.setTest(),传了 int 类型

通通检查了一遍,都没有解决我的问题,还是找不到文件。

最后恍然大悟,为了适配不同分辨率,写了两套布局文件, layout,layout-large, 找不到的这个文件只在 layout-large 里边,layout 里边没有,把 文件复制到 layout 里边,保存,运行,成功 !!!

可能遇到的问题不一样,但是静下心来,发现问题,最终都会被解决的, 加油。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android侧滑返回方案,支持SDK19(Android4.4)及以上。目录示例demo功能介绍实现原理集成方式使用方式注意事项示例demoDemo下载示例效果点此下载 或扫描下面二维码功能介绍支持SDK19(Android4.4)及以上Activity的侧滑返回,同时实现沉浸式状态栏。实现原理侧滑时利用反射将窗口转为透明,结束后再利用反射将窗口还原为不透明。详细分析集成方式在module的build.gradle中添加如下代码    dependencies {         implementation 'cn.simonlee.widget:swipeback:1.0.10'     }使用方式STEP.1在Activity的styles中配置如下属性<item name="android:windowBackground">@android:color/transparent</item>STEP.2在Activity的onCreate方法中获取SwipeBackHelper实例@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);     setContentView(R.layout.activity_swipeback);    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {         mSwipeBackHelper = new SwipeBackHelper(this);        //设置窗口背景颜色,以覆盖不可见区域的黑色背景(不可见区域常见为当输入法及导航栏变化时的背景)         mSwipeBackHelper.setWindowBackgroundColor(getResources().getColor(R.color.colorWindowBackground));     } }STEP.3在Activity的dispatchTouchEvent和onTouchEvent中分发触摸事件,如果仅希望侧边触发,可以不用onTouchEvent@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {    if (mSwipeBackHelper != null) {         mSwipeBackHelper.dispatchTouchEvent(event);     }    return super.dispatchTouchEvent(event); }@Overridepublic boolean onTouchEvent(MotionEvent event) {    if (mSwipeBackHelper != null) {         mSwipeBackHelper.onTouchEvent(event);     }    return super.onTouchEvent(event); }注意事项Tips.1如需要适配SDK21(Android5.0)以下,必须在styles中配置如下属性。SDK21及以上无需此属性<item name="android:windowIsTranslucent">true</item>Tips.2因状态栏透明,输入法的adjustPan模式不会生效,建议设置为adjustResizeTips.3因状态栏透明,布局会从屏幕顶端开始绘制,需自行调整paddingTop//获取状态栏的高度public int getStatusBarHeight() {    int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");    try {        return getResources().getDimensionPixelSize(resourceId);     } catch (Resources.NotFoundException e) {        return 0;     } }Tips.4侧滑的核心原理是利用反射转换窗口透明,这会影响到下层Activity的生命周期。侧滑过程中窗口转为透明时,下层Activity会被唤醒,进入onStart状态,如果发生屏幕旋转,下层Activity还将会进行重建。当我们将窗口恢复为不透明,下层Activity会重新进入onStop状态。因此如果你的Activity代码逻辑比较混乱,使用之前务必进行逻辑优化。Tips.5当顶层Activity方向与下层Activity方向不一致时侧滑会失效(下层方向未锁定除外),请关闭该层Activity侧滑功能。 示例场景:竖屏界面点击视频,进入横屏播放。Tips.6如需动态支持横竖屏切换(比如APP中有“支持横屏”开关),屏幕方向需指定为behind跟随栈底Activity方向,同时在onCreate中进行判断,若不支持横竖屏切换则锁定屏幕方向(因为经测试SDK21中behind无效)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值