Android:res资源在R.java中不能自动生成ID

本文介绍在Android开发过程中,res资源文件中的控件如何在R.java文件中自动生成对应的ID。指出只有当res文件被保存后,R.java才会更新并生成相应的ID。这对于初学者理解资源加载流程很有帮助。

Android:res资源在R.java中不能自动生成ID

为res下任何资源文件添加新的控件时,会在R.java自动生成相应ID。如果res修改后没有保存,R.java是不会生成ID(字段属性值)的。在程序未调试通过,相应的Id也不会生成。(初学描述可能不准确,问题亲身实践)

12-01 04:43:31.506: E/AndroidRuntime(5531): FATAL EXCEPTION: main 12-01 04:43:31.506: E/AndroidRuntime(5531): Process: com.android.permissioncontroller, PID: 5531 12-01 04:43:31.506: E/AndroidRuntime(5531): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.permissioncontroller/com.android.permissioncontroller.permission.ui.GrantPermissionsActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f0d001c 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3432) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3596) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.os.Handler.dispatchMessage(Handler.java:106) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.os.Looper.loop(Looper.java:223) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.ActivityThread.main(ActivityThread.java:7705) 12-01 04:43:31.506: E/AndroidRuntime(5531): at java.lang.reflect.Method.invoke(Native Method) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952) 12-01 04:43:31.506: E/AndroidRuntime(5531): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0d001c 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:237) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2400) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.content.res.Resources.getLayout(Resources.java:1252) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.view.LayoutInflater.inflate(LayoutInflater.java:530) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.view.LayoutInflater.inflate(LayoutInflater.java:479) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:466) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Dialog.setContentView(Dialog.java:571) 12-01 04:43:31.506: E/AndroidRuntime(5531): at androidx.wear.ble.view.AcceptDenyDialog.<init>(AcceptDenyDialog.java:84) 12-01 04:43:31.506: E/AndroidRuntime(5531): at androidx.wear.ble.view.AcceptDenyDialog.<init>(AcceptDenyDialog.java:78) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.wear.GrantPermissionsWearViewHandler.showDialog(GrantPermissionsWearViewHandler.java:167) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.wear.GrantPermissionsWearViewHandler.updateUi(GrantPermissionsWearViewHandler.java:121) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.showNextPermissionGroupGrantRequest(GrantPermissionsActivity.java:876) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.onCreate(GrantPermissionsActivity.java:457) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Activity.performCreate(Activity.java:7994) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Activity.performCreate(Activity.java:7978) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3405) 12-01 04:43:31.506: E/AndroidRuntime(5531): ... 11 more 12-01 04:43:31.538: W/ActivityTaskManager(988): Force finishing activity com.android.permissioncontroller/.permission.ui.GrantPermissionsActivity
最新发布
12-09
12-01 04:43:31.506: E/AndroidRuntime(5531): at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:237) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2400) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.content.res.Resources.getLayout(Resources.java:1252) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.view.LayoutInflater.inflate(LayoutInflater.java:530) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.view.LayoutInflater.inflate(LayoutInflater.java:479) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:466) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Dialog.setContentView(Dialog.java:571) 12-01 04:43:31.506: E/AndroidRuntime(5531): at androidx.wear.ble.view.AcceptDenyDialog.<init>(AcceptDenyDialog.java:84) 12-01 04:43:31.506: E/AndroidRuntime(5531): at androidx.wear.ble.view.AcceptDenyDialog.<init>(AcceptDenyDialog.java:78) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.wear.GrantPermissionsWearViewHandler.showDialog(GrantPermissionsWearViewHandler.java:167) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.wear.GrantPermissionsWearViewHandler.updateUi(GrantPermissionsWearViewHandler.java:121) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.showNextPermissionGroupGrantRequest(GrantPermissionsActivity.java:876) 12-01 04:43:31.506: E/AndroidRuntime(5531): at com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.onCreate(GrantPermissionsActivity.java:457) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Activity.performCreate(Activity.java:7994) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Activity.performCreate(Activity.java:7978) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1310) 12-01 04:43:31.506: E/AndroidRuntime(5531): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3405)
12-09
---------------------------- PROCESS STARTED (4936) for package com.hyperos.aitoolbox ---------------------------- 2025-10-16 17:38:29.857 4936-4936 AndroidRuntime com.hyperos.aitoolbox D Shutting down VM 2025-10-16 17:38:29.857 4936-4936 AndroidRuntime com.hyperos.aitoolbox E FATAL EXCEPTION: main Process: com.hyperos.aitoolbox, PID: 4936 android.content.res.Resources$NotFoundException: Resource ID #0x0 at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:370) at android.content.res.MiuiResourcesImpl.getValue(MiuiResourcesImpl.java:106) at android.content.res.Resources.loadXmlResourceParser(Resources.java:2756) at android.content.res.Resources.getLayout(Resources.java:1429) at android.view.LayoutInflater.inflate(LayoutInflater.java:464) at android.view.LayoutInflater.inflate(LayoutInflater.java:417) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:751) at androidx.appcompat.app.AppCompatDialog.setContentView(AppCompatDialog.java:99) at miuix.appcompat.app.AlertController.installContent(AlertController.java:489) at miuix.appcompat.app.AlertDialog.onCreate(AlertDialog.java:358) at android.app.Dialog.dispatchOnCreate(Dialog.java:459) at android.app.Dialog.show(Dialog.java:344) at miuix.appcompat.app.AlertDialog.show(AlertDialog.java:407) at com.hyperos.aitoolbox.shortcut.ui.fm.edit.SCMainManualEditFragment.onCreatePreferences$lambda$5(SCMainManualEditFragment.kt:119) at com.hyperos.aitoolbox.shortcut.ui.fm.edit.SCMainManualEditFragment.$r8$lambda$olvGR8NMYlFPQoMnlnFCVGd8t0g(Unknown Source:0) at com.hyperos.aitoolbox.shortcut.ui.fm.edit.SCMainManualEditFragment$$ExternalSyntheticLambda4.onPreferenceClick(D8$$SyntheticClass:0) at androidx.preference.Preference.performClick(Preference.java:1200) at androidx.preference.Preference.performClick(Preference.java:1182) at androidx.preference.Preference$1.onClick(Preference.java:182) at android.view.View.performClick(View.java:8298) at android.view.View.performClickInternal(View.java:8275) at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) at android.view.View$PerformClick.run(View.java:33374) at android.os.Handler.handleCallback(Handler.java:995) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loopOnce(Looper.java:265) at android.os.Looper.loop(Looper.java:358) at android.app.ActivityThread.main(ActivityThread.java:10058) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:616) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1115) ---------------------------- PROCESS ENDED (4936) for package com.hyperos.aitoolbox ----------------------------
10-17
Process crashed before executing the test(s): android.content.res.Resources$NotFoundException: String resource ID #0x0 at android.content.res.Resources.getText(Resources.java:466) at android.content.res.Resources.getString(Resources.java:559) at android.content.Context.getString(Context.java:946) at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:217) at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207) at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49) at android.content.ContentProvider.attachInfo(ContentProvider.java:2644) at android.content.ContentProvider.attachInfo(ContentProvider.java:2613) at android.app.ActivityThread.installProvider(ActivityThread.java:8292) at android.app.ActivityThread.installContentProviders(ActivityThread.java:7807) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7488) at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2416) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8705) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913) INSTRUMENTATION_RESULT: shortMsg=Process crashed. INSTRUMENTATION_CODE: 0
07-30
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值