【问题标题】:Resource NotfoundException when create new activity创建新活动时的资源 NotfoundException
【发布时间】:2014-02-06 20:42:53
【问题描述】:

我正在构建一个从旧项目导入的新 android 项目。在我进行了一些修改并创建了一个新活动之后,我注意到在 logcat 中,每当我打开一个运行应用程序时的新活动。

我尝试了网上提供的很多方法,比如清理项目,或者将所有类移动到一个包中,或者关闭编辑器中的所有布局,或者删除 R 文件。 有点疯狂,任何帮助将不胜感激。

错误如下:

01-17 14:18:20.112: W/ResourceType(6671): Requesting resource 0x7f090001 failed because it is complex
01-17 14:18:20.122: W/PackageManager(6671): Failure retrieving text 0x7f090001 in package study.runtracker
01-17 14:18:20.122: W/PackageManager(6671): android.content.res.Resources$NotFoundException: String resource ID #0x7f090001
01-17 14:18:20.122: W/PackageManager(6671):     at android.content.res.Resources.getText(Resources.java:244)
01-17 14:18:20.122: W/PackageManager(6671):     at android.app.ApplicationPackageManager.getText(ApplicationPackageManager.java:994)
01-17 14:18:20.122: W/PackageManager(6671):     at android.content.pm.ComponentInfo.loadLabel(ComponentInfo.java:85)
01-17 14:18:20.122: W/PackageManager(6671):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
01-17 14:18:20.122: W/PackageManager(6671):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
01-17 14:18:20.122: W/PackageManager(6671):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
01-17 14:18:20.122: W/PackageManager(6671):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
01-17 14:18:20.122: W/PackageManager(6671):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-17 14:18:20.122: W/PackageManager(6671):     at android.os.Looper.loop(Looper.java:136)
01-17 14:18:20.122: W/PackageManager(6671):     at android.app.ActivityThread.main(ActivityThread.java:5017)
01-17 14:18:20.122: W/PackageManager(6671):     at java.lang.reflect.Method.invokeNative(Native Method)
01-17 14:18:20.122: W/PackageManager(6671):     at java.lang.reflect.Method.invoke(Method.java:515)
01-17 14:18:20.122: W/PackageManager(6671):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-17 14:18:20.122: W/PackageManager(6671):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-17 14:18:20.122: W/PackageManager(6671):     at dalvik.system.NativeStart.main(Native Method)

这里是R文件中0x7f090001的引用:

 All customizations that are NOT specific to a particular API-level can go here. 
         */
        public static final int AppTheme=0x7f090001;
    }

感谢您的建议,但问题仍然存在,以下是清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="study.runtracker"
    android:versionCode="1"
    android:versionName="1.0" >
    <permission  
        android:name="study.runtracker.permission.MAP_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="study.runtracker.permission.MAP_RECEIVE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-feature android:required="true" android:name="android.hardware.location.gps"/>
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="study.runtracker.RunListActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="study.runtracker.RunActivity" 
                  android:label="@style/AppTheme" >
        </activity>
         <activity android:name="study.runtracker.RunMapActivity" 
                  android:label="@style/AppTheme" >
        </activity>
        <activity android:name="study.runtracker.map.OSMActivity" 
                  android:label="@style/AppTheme" >
        </activity>
        <receiver android:name="study.runtracker.LocationReceiver"
            android:exported="false">
            <intent-filter >
                <action android:name ="study.runtracker.ACTION_LOCATION"/>
            </intent-filter>
        </receiver>
        <service android:name="study.runtracker.DeadReckoningService"></service>
         <meta-data 
         android:name="com.google.android.gms.version" 
         android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="balabala"/>
    </application>

【问题讨论】:

  • 也贴出相关代码
  • 相关代码例如清单
  • This: android.content.res.Resources$NotFoundException: String resource ID #0x7f090001 让我想到了 strings.xml 中的错字...或者有交叉引用在 R.java 中同时指向主题和字符串?尝试删除 R.java 并让它重新创建
  • 尝试重新启动 Eclipse,有时它知道会发疯……然后将您的 XML 发布到您引用 AppTheme 的位置
  • 我也查了R文件,这里没有交叉引用,重启Eclipse都不行,也不重建R文件。

标签: android exception layout resources r.java-file


【解决方案1】:
<activity android:name="study.runtracker.RunActivity" 
              android:label="@style/AppTheme" >

label 不能是 style 资源。应该是string,例如@string/app_name

这同样适用于清单中的其他一些活动。

【讨论】:

  • 非常感谢,Iaalto,这是一个愚蠢的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2014-02-11
  • 2015-04-13
相关资源
最近更新 更多