由于“获取资源编号的值时没有包标识符”而导致崩溃

好吧,通过search我可以find关于这个主题的各种线索,并试图为其他人似乎工作的一切…我屈服于需要发表我自己的问题。

作为一个Android和Java的总诺贝尔,你将不得不原谅像小孩一样跟我说话的需要:)

我有一个应用程序,迄今有3个活动。 作为导航屏幕的主窗口可以select其他两个窗口之一。 第一个完美的作品,但是当我尝试button号码2 …它崩溃。

我有一些代码,我试图运行onCreate …所以当我看到它是经常导致崩溃的XML布局..我评论了Java代码…并presto布局加载罚款。

把代码放回去,它再次崩溃。

查看LogCat中,我看到一行“当获取资源编号0x0000000d时没有包标识符”

然后是关于致命exception的各种线路,并closures虚拟机。

所以,从其他职位获得信心,我去了R.java文件,看看哪些资源具有该ID …它不在那里。 它们全部以0x7f开始…现在,以“d”结尾的唯一一个是ID为“game_Answer1”的文本视图。 但是我不确定这是不是指的。

我没有尝试Eclipse清理命令,以及删除R.java …相同的问题。

下面是Java代码,似乎崩溃了…再次,笑我的意大利面代码,因为这是在Java以外的尝试#2超越hello世界的应用程序!


import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import java.util.Random; public class playgame extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gamelayout); //set up first question genQuestion(); } Random generator = new Random(); public void genQuestion() { int i = generator.nextInt(25); int correct = generator.nextInt(2)+1; TextView g_answera = (TextView) findViewById(R.id.game_Answer1); TextView g_answerb = (TextView) findViewById(R.id.game_Answer2); TextView g_answerc = (TextView) findViewById(R.id.game_Answer3); g_answera.setText("-"); g_answerb.setText("-"); g_answerc.setText("-"); if(correct==1){ g_answera.setText("!"); } if(correct==2){ g_answerb.setText("!"); } if(correct==3){ g_answerc.setText("!"); } } 

下面是与这个问题相关的XML布局…只是以防万一我失去了一些明显的东西:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:id="@+id/gamelayoutwrapper"> <RelativeLayout android:layout_height="wrap_content" android:id="@+id/games_animalnameFrame" android:layout_width="fill_parent" android:gravity="right"> <TextView android:layout_height="wrap_content" android:id="@+id/game_animalname" android:layout_width="fill_parent" android:textSize="60sp" android:layout_alignParentRight="true" android:gravity="right" android:text="__nteater"></TextView> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:id="@+id/game_animalimageFrame" android:layout_below="@+id/games_animalnameFrame" android:layout_centerInParent="true" android:layout_height="wrap_content" android:gravity="top"> <ImageView android:id="@+id/game_animalImage" android:src="@drawable/elephant" android:scaleType="fitCenter" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="10dp"></ImageView> </RelativeLayout> <RelativeLayout android:layout_height="wrap_content" android:id="@+id/gameLettersFrame" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_centerHorizontal="true" android:background="#cccccc"> <TextView android:layout_height="wrap_content" android:id="@+id/game_Answer1" android:text="A" android:paddingLeft="20dp" android:paddingRight="20dp" android:layout_gravity="left" android:clickable="true" android:textSize="100sp" android:layout_width="wrap_content" android:layout_alignParentLeft="true" android:textColor="#090999" android:background="#ccccFF"></TextView> <TextView android:layout_height="wrap_content" android:id="@+id/game_Answer2" android:text="B" android:paddingLeft="20dp" android:paddingRight="20dp" android:layout_gravity="center_horizontal" android:clickable="true" android:textSize="100sp" android:layout_width="wrap_content" android:layout_centerInParent="true" android:textColor="#090999" android:background="#ffcccc"></TextView> <TextView android:layout_height="wrap_content" android:id="@+id/game_Answer3" android:text="C" android:paddingLeft="20dp" android:paddingRight="20dp" android:layout_gravity="right" android:clickable="true" android:textSize="100sp" android:layout_width="wrap_content" android:layout_alignParentLeft="false" android:layout_alignParentRight="true" android:textColor="#090999" android:background="#ccffcc"></TextView> </RelativeLayout> 

Solutions Collecting From Web of "由于“获取资源编号的值时没有包标识符”而导致崩溃"

我刚才遇到了同样的问题,我认为它是固定的,但我想一个替代答案永远是欢迎:)当使用setText()方法,你不能通过原始数据types如int和double发送,而是转换为string,然后通过string发送。 这个问题在popup时解决了我的问题

Android不允许使用大写资源名称

改名

R.id.game_Answer1

game_answer_one

等你的对方

我想看一个LinearLayout的ID名称,以确保我正在访问我的代码中正确的。 这个错误对我来说是因为我忘了将一个android:id =“@ + id / myid”添加到我的一个XML布局文件中(因为那个文件并不是我注意力的焦点!)

在你的R.java文件中,gamelayout的id是否存在? 这应该位于R文件中的public static final class layout { }中。 这是确定您的应用程序崩溃的第一个重要步骤。

Android(不幸的是)不接受带有大写字母的资源标识符。 另外,确保你在根视图中定义你的名字空间。

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/game_answer1" android:text="A" android:paddingLeft="20dp" android:paddingRight="20dp" android:layout_gravity="left" android:clickable="true" android:textSize="100sp" android:layout_alignParentLeft="true" android:textColor="#090999" android:background="#ccccFF" /> </RelativeLayout> 

您的项目中可能会有其他错误,因为您的R.java创build不当。 因此在执行时没有获得具有该ID的资源。 R.id包含项目中所有资源的ID。

答案相当晚,但对于那些通过searchfind这个线索可能是有用的。

setText方法需要标识符作为参数。 因此,values / strings.xml中应该有一个名称为“empty_answer”的string,其中包含值“ – ”。 换句话说,这样的行: –

然后setText应该像这样调用:g_answera.setText(R.string.empty_answer);

可能的话,你的情况发生的是string“ – ”以某种方式变成资源ID 0x0000000d,这当然不存在于你的应用程序。 虽然这样的代码被编译是很奇怪的。

还有一点意见:在Android中,可能会使用大写字母命名资源,如ID。 什么是不可能的 – 在资源文件的名称有资本字符。