【问题标题】:App crashes ,When i click button i made for increment or decrement of quantity [duplicate]应用程序崩溃,当我单击按钮时,我会增加或减少数量 [重复]
【发布时间】:2017-07-31 19:42:02
【问题描述】:

我正在按照官方 android 网站的说明进行操作 创建我的第一个安卓应用。问题 - 当我单击按钮 “增加或减少”一个数量,应用程序崩溃。

日志猫

W/ResourceType: No package identifier when getting value for resource number 0x00000001
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.yash.myapplication, PID: 29603
              java.lang.IllegalStateException: Could not execute method for android:onClick
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                  at android.view.View.performClick(View.java:5207)
                  at android.view.View$PerformClick.run(View.java:21168)
                  at android.os.Handler.handleCallback(Handler.java:746)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:148)
                  at android.app.ActivityThread.main(ActivityThread.java:5443)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
               Caused by: java.lang.reflect.InvocationTargetException
                  at java.lang.reflect.Method.invoke(Native Method)
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                  at android.view.View.performClick(View.java:5207) 
                  at android.view.View$PerformClick.run(View.java:21168) 
                  at android.os.Handler.handleCallback(Handler.java:746) 
                  at android.os.Handler.dispatchMessage(Handler.java:95) 
                  at android.os.Looper.loop(Looper.java:148) 
                  at android.app.ActivityThread.main(ActivityThread.java:5443) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
               Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1
                  at android.content.res.Resources.getText(Resources.java:312)
                  at android.widget.TextView.setText(TextView.java:4427)
                  at com.example.yash.myapplication.MainActivity.display(MainActivity.java:57)
                  at com.example.yash.myapplication.MainActivity.IncrementQuantity(MainActivity.java:21)
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                  at android.view.View.performClick(View.java:5207) 
                  at android.view.View$PerformClick.run(View.java:21168) 
                  at android.os.Handler.handleCallback(Handler.java:746) 
                  at android.os.Handler.dispatchMessage(Handler.java:95) 
                  at android.os.Looper.loop(Looper.java:148) 
                  at android.app.ActivityThread.main(ActivityThread.java:5443) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
I/Process: Sending signal. PID: 29603 SIG: 9

谁能说出为什么会这样???

【问题讨论】:

  • MainActivity.java `package com.example.yash.myapplication;导入android.os.Build;导入android.os.Bundle;导入android.support.annotation.RequiresApi;导入android.support.v7.app.AppCompatActivity;导入android.view.View;导入 android.widget.CheckBox;导入 android.widget.TextView;公共类 MainActivity 扩展 AppCompatActivity { int 数量 = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
  • public void IncrementQuantity(View view) { quantity=quantity+1;显示(数量); } public void DecrementQuantity(View view) { quantity=quantity-1;显示(数量); }
  • 将源代码放入您的问题中,以便人们可以阅读它。
  • 或者您可以添加更多详细信息,如错误消息所述。根据网站政策和可读性,请将代码放在问题本身中。
  • 另外,一般编程问题请不要使用 [android-studio] 标签。

标签: java android runtime-error fatal-error


【解决方案1】:

您尝试使用不存在或未正确键入的 id 访问资源。

显示功能内部:

原因:android.content.res.Resources$NotFoundException: String 资源 ID #0x1 在 android.content.res.Resources.getText(Resources.java:312) 在 android.widget.TextView.setText(TextView.java:4427) 在 com.example.yash.myapplication.MainActivity.display(MainActivity.java:57) 在 com.example.yash.myapplication.MainActivity.IncrementQuantity(MainActivity.java:21)

您在创建 TextView 的句柄时可能使用了错误的 ID。 TextView textView=(TextView)findViewById(R.id.quantity_textView);

确保quantity_textView 存在。如果您知道该 id 是正确的,请确保在您的布局文件中使用了 android:id="@+id/quantity_textView"

请确保将代码复制到您的问题中以使其可读。

【讨论】:

  • 在 android.widget.TextView.setText... findViewById 不是问题
  • 哈哈是的,你是对的。我的答案没有实际意义
  • 现在添加正确答案为时已晚,我猜!哎呀
  • 你可以edit你现有的答案
  • 感谢 Taylor 的回复,尽管我在 cricket_007 发布的解决方案的帮助下理解了我的问题。
猜你喜欢
  • 2017-10-23
  • 2019-01-30
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多