android - android应用程序在运行时找不到字符串资源
问题描述
我已经在ubuntu14.04中打包了我的AndroidStudio项目,它可以正确部署在我的手机上。但是当我解压它并尝试在windows10 AndroidStudio环境中构建和调试它时,我在日志中发现了这个运行时错误:
2018-11-28 17:15:16.071 21275-21303/? W/ResourceType: Failure getting entry for 0x7f0d001f (t=12 e=31) (error -2147483647)
2018-11-28 17:15:16.071 1697-1721/? I/zygote64: Successfully killed process cgroup uid 10177 pid 16739 in 8ms
2018-11-28 17:15:16.071 21275-21303/? W/PackageManager: Failure retrieving text 0x7f0d001f in package graduationproject.usst.edu.facedetect
android.content.res.Resources$NotFoundException: String resource ID #0x7f0d001f
at android.content.res.Resources.getText(Resources.java:380)
at android.app.ApplicationPackageManager.getText(ApplicationPackageManager.java:1890)
at android.content.pm.PackageItemInfo.loadLabel(PackageItemInfo.java:138)
at com.nearme.statistics.rom.a.h.l.a(Utils.java:88)
at com.nearme.statistics.rom.usermodel.a.c(BackgroundAppData.java:95)
at com.nearme.statistics.rom.usermodel.a.a(BackgroundAppData.java:69)
at com.nearme.statistics.rom.usermodel.a.a(BackgroundAppData.java:20)
at com.nearme.statistics.rom.usermodel.BackgroundAppData$1$1.run(BackgroundAppData.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
而且我在调试工具栏中没有任何错误消息:
Connected to the target VM, address: 'localhost:8600', transport: 'socket'
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'
我检查了我的 R.java 类,发现:</p>
public static final int app_name=0x7f0d001f;
我使用 app_name 的所有地方都只在 AndroidManifest.xml 中:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="graduationproject.usst.edu.facedetect">
<uses-permission android:name="android.permission.CAMERA"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".menu"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
我想我很安静,确定这就是问题所在,因为当我改变时
android:label="@string/app_name"
至
android:label="@string/another_name"
然后日志中的错误信息变成了:
2018-11-28 17:15:16.071 21275-21303/? W/PackageManager: Failure retrieving text 0x7f0d001e in package graduationproject.usst.edu.facedetect
android.content.res.Resources$NotFoundException: String resource ID #0x7f0d001e
在 R.java 类中具有以下内容:
public static final int another_name=0x7f0d001e;
文件“project\app\src\main\res\values\strings.xml”存在,其中的正文是:
<resources>
<string name="app_name">facedetect</string>
<string name="another_name">facedetectt</string>
<string name="action_settings">Settings</string>
</resources>
AndroidStudio 版本是 3.2.1,我正在使用
JDK 1.8
Android SDK 27
NDK 18
Gradle 4.6
Gradle plugin:3.2.1
我尝试过重新构建、清理,甚至删除了 Build 文件夹以彻底清理和重建。
我不知道问题出在哪里。任何人都可以请帮我解决这个问题吗?谢谢!
解决方案
我有一个类似的问题;尝试在 Android Studio 中禁用“即时运行”功能:设置>构建、执行、部署>即时运行> 取消选中启用即时运行。
推荐阅读
- angular - 未验证对所选 Android 目标 SDK android-undefined 的支持。您的 Android 应用程序可能无法按预期运行
- android - 注册成功后如何获取 JSON 响应
- postgresql - Docker for Windows:挂载卷不适用于 dockerized postgresql
- javascript - d3.js 在轴更新后更新嵌套数据圈(enter.merge())?
- mongodb - 如何从 mongo 模式中的 ref 数组中删除 ObjectId?
- php - Symfony 应用程序/缓存(具有 777 权限)文件夹不可写错误
- r - R writetable 修改数据框中的数字
- python-3.x - 如何使用 .to_csv() 避免在行尾出现双引号
- python - 有没有办法将每个迭代的值分别存储在新变量中的 for 循环中?
- scala - getFromDirectory 在 akka-http 路由中不起作用