请告诉我出错的地方。
我正在创建一个应用程序,其活动之一仅在横向模式下。所以我在 AndroidManifest.xml 文件
中添加了以下内容<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>
我创建了一个像
这样的文件夹/ RES /布局陆
并在其中添加名为see_today_landscape_layout的布局。
并在onCreate()
中添加了以下内容
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.see_today_landscape_layout);
....
}
但是当我运行我的应用程序时,我收到以下错误
02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main
02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4066)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.access$2400(ActivityThread.java:135)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.os.Looper.loop(Looper.java:144)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.main(ActivityThread.java:4937)
02-06 13:46:14.358: E/AndroidRuntime(13286): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): at java.lang.reflect.Method.invoke(Method.java:521)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-06 13:46:14.358: E/AndroidRuntime(13286): at dalvik.system.NativeStart.main(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.getValue(Resources.java:892)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.getLayout(Resources.java:731)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.Activity.setContentView(Activity.java:1654)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.mid.kew.activities.LandScapeImageActivity.onCreate(LandScapeImageActivity.java:103)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
02-06 13:46:14.358: E/AndroidRuntime(13286): ... 12 more
我在 R.java 中划线检查了它,并且它有一个ID为异常的ID为7f03002b的资源,它存在于那里......
我清理并重建项目5次,但问题仍然存在。
奇怪的一点是,这在昨天工作,今天不起作用。代码是一样的。
答案 0 :(得分:198)
对于我的情况,原因是int
的{{1}}参数。让我举个例子
TextView
获取上面的错误信息。
可以通过将int i = 5;
myTextView.setText(i);
转换为int
来解决此问题
String
当您编写myTextView.setText(String.valueOf(i));
时,它期望资源不是您正在编写的文本。因此,请注意在Android中将int
设置为int
。
答案 1 :(得分:37)
如果再次发生,请删除r.java文件。它会自动生成。
答案 2 :(得分:11)
由于您正在明确设置布局,因此可能需要尝试将其放在默认/布局文件夹中,而不是放在/ layout-land中,因为如果您希望Android自动为您处理旋转。
答案 3 :(得分:8)
尝试将布局xml从res/layout-land
移动到res/layout
文件夹
答案 4 :(得分:2)
检查以确保您的导入正确无误。我有一个类似的问题,R
指向Android系统R
文件,而不是我的本地文件。
答案 5 :(得分:2)
这可能是由于手机中的语言不同而您的代码没有资产。例如,您的preference.xml位于xml-en中,并且您尝试在选择了法语的手机中运行您的应用程序,该应用程序将崩溃。
答案 6 :(得分:2)
在我的情况下,我的build.gradle中的应用程序模块的Build Tools版本在旧项目上已经过时了。更新它修复了问题:
android {
...
buildToolsVersion "19.0.1"
...
更新到最新的构建工具版本(25.0.1)并同步项目,一切都很好。
答案 7 :(得分:1)
我刚刚在 Android 6 上收到此错误。 我将所有 drawable 从 drawable-v24 移动到 drawable 文件夹,错误终于消失了。
答案 8 :(得分:1)
即使已经接受了答案,但我有不同的答案。当您分配一些文本进行查看时,通常会发生这种情况。例如。
currectText.setText(progress);
但如果参数不是字符串,它会给你
android.content.res.Resources$NotFoundException: String resource ID
所以将参数设为字符串。只需使用&#39; +&#39;运营商
currectText.setText(""+progress);
我在刚刚转换为字符串问题解决方法的setText方法中传递int
第二个选项Integer
currectText.setText(String.valueOf(progress));
答案 9 :(得分:1)
这也会造成一些麻烦: 不小心我的一个布局被停放在我的平板电脑资源文件夹中,所以我只有手机布局才会出现此错误。手机布局根本没有合适的布局文件。
在将布局文件移动到正确的标准文件夹并重建以下项目后,我再次工作。
答案 10 :(得分:1)
我从另一个原因得到了这个错误:
我有文件res/xml/data.xml
,我试图用Resources
类加载它,如下所示:
Resources.getSystem().getXml(R.xml.data);
然而这是不正确的,因为方法Resources.getSystem()
返回一个全局共享的Resources对象,该对象只提供对系统资源的访问。
正确的方法如下(来自活动内部):
this.getResources().getXml(R.xml.data);
答案 11 :(得分:0)
我删除了项目中的文件夹build
。清理完并在Android Studio中重建它。然后更正了build.gradle和AndroidManifest中的错误。
答案 12 :(得分:0)
您在xml中将屏幕方向设置为横向。如果您使用eclipse生成此文件,它将在res / layout-land / folder下创建。但是当您在Portrait模式下打开活动时,应用程序将在res / layout-port /文件夹中搜索xml或者在常规res / layout /中搜索xml 。 如果您没有纵向模式的xml,您的应用程序将崩溃。
答案 13 :(得分:0)
确保您指向的R是正确的。我遇到了一个非常类似的问题,Eclipse导入的一个导入指向System R文件而不是项目文件。它花了很多头。希望这会有所帮助。
答案 14 :(得分:0)
当我尝试使用getInt(“ID”)从One Intent访问Bundle数据时出现此错误。
我使用getString(“ID”)解决了这个问题。
来自Activity1我有
Intent intent=new Intent(this,ActivityB.class);
intent.putExtra("data",data)//
startActivity(intent);
在活动B上,
Bundle bundle=getIntent().getExtras();
if(extras!=null){
// int x=extras.getInt("Data"); This Line gave me error int
x=Integer.parseInt(extras.getString("Data")); // This solved the problem.
}
答案 15 :(得分:0)
对我来说,缓存失效和重新启动无效。我删除了.idea和.gradle文件夹。如果这样做,请不要忘记构建日志之类的东西或其他东西可能会消失。
答案 16 :(得分:0)
Eclipse:项目&gt;清洁
为我工作。当我将其他应用程序的布局复制到新应用程序时,我经常会这样做。
烦。
答案 17 :(得分:-1)
我已经通过这种方式解决了这个问题:
在资源目录名PGPASSWORD=<password> psql -h <host> -d <db> -U <user> -p 5439-a -c "select * from <table>" -F '<delimiter>' -o temp.csv
中创建一个文件夹,然后将此目录中的所有资源从其他可绘制目录中移出。
现在清理您的项目,然后重建。希望它能再次运行,这次没有任何资源未找到异常。