Android应用程序在运行时找不到字符串资源

时间:2018-11-28 09:59:38

标签: android

我已经将AndroidStudio项目打包在ubuntu14.04中,该项目可以正确部署在手机上。但是,当我将其解压缩并尝试在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类,发现:

    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文件夹以彻底清理和重建。

我不知道问题出在哪里。有人可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

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

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