首页 > 解决方案 > 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

解决方案


我有一个类似的问题;尝试在 Android Studio 中禁用“即时运行”功能:设置>构建、执行、部署>即时运行> 取消选中启用即时运行

来源:https ://stackoverflow.com/a/54043188/1992342


推荐阅读