【问题标题】:Android studio my code changes on runningAndroid studio 我的代码在运行时发生变化
【发布时间】:2017-07-02 19:47:36
【问题描述】:

我的线路:<action android:name="@string/s" />

更改为<action android:name="@strings/s1" />

当我点击运行应用程序按钮时,由于我没有名为 s1 的字符串,它给了我一个错误:

错误:(31, 39) 没有找到与给定名称匹配的资源(在 'name' 的值为 '@strings/s1')。

还应该是 @string/ 还是 @strings/(因为我的向导说应该是我 @string/)

我试过把:<action android:name="R.strings.s" />

但结果相同

gif : http://g.recordit.co/SnRcWopWgE.gif

【问题讨论】:

  • 尝试清理您的项目,看看这个问题是否仍然存在
  • 已经这样做了
  • 这是哪个文件?
  • 我不知道你在问什么@Eenvincible
  • 然后试着给你的字符串一个合理的名字; s 太卑鄙了; :) 我相信你能找到一个词

标签: android xml


【解决方案1】:

你有一个错字。你多加了一个s。

<action android:name="@string/s1" 

是正确的。

问题在于您的即时运行 请从设置中禁用它并再次进行完整构建。还要更改原始清单!不是构建或即时运行版本。

正如 Muthukrishnan Rajendran 提到的,请注意:

如果您使用字符串资源,它将不起作用。你应该使用一个完整的字符串。

如果你想打开另一个活动,你应该使用显式意图。

Intent intent = new Intent(this,OtherActivity.class);
startActivity(intent);
finish();

没有必要为你想做的事情定义任何意图过滤器。

【讨论】:

  • 嗨,如果你这样给出,你会得到这个错误“错误:(31)标签属性名称有无效字符''。”编译时,在您的工作室中尝试并检查
  • 这没有帮助。无论如何它都会改变,这就是我首先混淆@string/或@strings/的原因(正如我在问题中提到的那样)
  • 嘿,您正在更改即时运行 Mainfest 中的值,关闭它,然后打开您的应用程序 mainfest 并更改
  • 我再次告诉你,请关闭所有文件并仅在您的侧文件夹中打开您的 mainfest 并在那里进行编辑。您对即时运行的 mainfest、完整的 mainfest 和实际的 mainfest 感到困惑。
  • 但是我在第一条评论中说过,如果您给出喜欢的答案,我们将收到错误
【解决方案2】:

我认为您可能对意图过滤器的性质感到困惑。值得尝试加载主屏幕的默认操作。尝试删除您的操作并替换为

文档参考:https://developer.android.com/reference/android/content/Intent.html

【讨论】:

  • @BussinessPlanQucikBuild,请查看他的 gif 文件,他已经有一个 MainActivity,并且其中有
  • 会做的,抱歉没注意到。
  • @Muthukrishnan Rajendran - 你是对的,但我认为不需要额外的意图过滤器。他可以尝试移除多余的意图并尝试运行。
  • 是的,你是对的,我们虽然他会在他的活动中做一些动作。刚才他提到了。
  • @Muthukrishnan Rajendran - 感谢您的更新,很难关注所有回复。好在他有办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 2022-11-16
相关资源
最近更新 更多