【问题标题】:Can't find resource id? LogCat找不到资源ID?日志猫
【发布时间】:2014-05-13 22:04:15
【问题描述】:

是的,这是我的疯子,我需要解决它,因为它一直在发生。

基本上,当我从 eclipse 启动应用程序到我的手机时,它不会打开,它只是强制关闭并且它正在这样做,因为 LogCat 说尽管它确实找到了资源 id。

我已经尽一切努力让它发挥作用,但以防万一我错过了一个技巧,我想问你很多!

谢谢

哦,这是日志

  05-13 22:56:01.291: E/AndroidRuntime(27580): FATAL EXCEPTION: main
    05-13 22:56:01.291: E/AndroidRuntime(27580): Process: com.simplistic.floating_equalizerpro, PID: 27580
05-13 22:56:01.291: E/AndroidRuntime(27580): android.content.res.Resources$NotFoundException: Resource ID #0x7f070008 type #0x12 is not valid
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:3231)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.content.res.XResources.loadXmlResourceParser(XResources.java:566)
    05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.content.res.Resources.getLayout(Resources.java:1825)
    05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.View.inflate(View.java:18366)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at com.simplistic.floating_equalizerpro.ui.EqualizerFragment.initUi(EqualizerFragment.java:115)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at com.simplistic.floating_equalizerpro.ui.EqualizerFragment.onViewCreated(EqualizerFragment.java:170)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:952)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:478)
05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.View.measure(View.java:17387)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.View.measure(View.java:17387)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.view.View.measure(View.java:17387)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.view.View.measure(View.java:17387)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
    05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.View.measure(View.java:17387)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.view.View.measure(View.java:17387)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2533)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.View.measure(View.java:17387)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2211)
    05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1325)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1547)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at   android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1234)
    05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6465)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
    05-13 22:56:01.291: E/AndroidRuntime(27580):    at android.view.Choreographer.doCallbacks(Choreographer.java:603)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.Choreographer.doFrame(Choreographer.java:573)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at android.os.Handler.handleCallback(Handler.java:733)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at android.os.Handler.dispatchMessage(Handler.java:95)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.os.Looper.loop(Looper.java:157)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at android.app.ActivityThread.main(ActivityThread.java:5356)
  05-13 22:56:01.291: E/AndroidRuntime(27580):  at java.lang.reflect.Method.invokeNative(Native Method)
   05-13 22:56:01.291: E/AndroidRuntime(27580):     at java.lang.reflect.Method.invoke(Method.java:515)
 05-13 22:56:01.291: E/AndroidRuntime(27580):   at com.android.internal.os.ZygoteInit$Me



    protected void initUi() {
    this.mEqualizerEnabled = (CheckBox) getView()
            .findViewById(R.id.equalizer_enabled);
    this.mBandsContainer = (LinearLayout) getView()
            .findViewById(R.id.equalizer);
    this.mMaxBandLevel = EqualizerApi.getMaxBandLevelRange();
    this.mMinBandLevel = EqualizerApi.getMinBandLevelRange();
    this.mBandsCount = EqualizerApi.getNumberOfBands();
    Integer integer = (this.mMaxBandLevel - this.mMinBandLevel);
    for (int i = 0; i < this.mBandsCount; ++i) {
        inflate = View.inflate(getActivity(), R.id.equalizer_bands, mBandsContainer);
    }
    for (int j = 0; j < this.mBandsCount; ++j) {
        VerticalSeekBar verticalSeekBar = this.getBandByIndex(j);
        verticalSeekBar.setMax(integer.intValue());
        verticalSeekBar.setId(j);
    }
    for (int k = 0; k < this.mBandsCount; ++k) {
        this.getBandTitleByIndex(k).setText(
                (this.getFreqValue(EqualizerApi.getBandFreq(k))));
    }
}

【问题讨论】:

  • 你清理过项目吗?
  • 你为什么不发布你的EqualizerFragment.initUi 方法和你正在膨胀的布局xml?
  • 你应该检查你正在膨胀的 xml,也许你在 android:id="@+id/your_id" 中缺少“@+”一些元素

标签: android android-resources android-logcat forceclose


【解决方案1】:

这些是我能想象的可能的错误:

1- 在你的 layout.xml 中你有一个像这样的元素:

  <View    
   android:id="@+id/your_id"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />

但你有这个:

  <View    
   android:id="@id/your_id"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />

所以... your_id 元素没有添加到 R.java 中,这就是问题所在。

2- 您正在使用 RelativeLayout 并且您正在执行以下操作:

  <TextView
   android:id="@+id/your_id"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerVertical="true"
   android:layout_toLeftOf="@id/other_id"
   android:layout_toRightOf="@id/other_id2"
   android:visibility="invisible" >
  </TextView>

但是 other_id 或/和 other_id2 元素不存在,这就是问题所在。

3- 也许你做错了参考,例如......当你应该调用 R.layout.my_layout 时调用 R.id.my_layout 或反之亦然。

也许我遗漏了一些案例,但这些是我目前能想象到的问题。

如果还是不能解决问题,那么你应该搜索错误的资源。

  1. 在 Eclipse 中,打开“gen”文件夹
  2. 在该文件夹中,您会看到一个包 (我认为是 com.simplistic.floating_equalizerpro),展开它
  3. 打开 R.java 文件
  4. (CMD + F) 或 (CTRL + F) 并搜索 id #0x7f070008
  5. 注意资源名称,您应该知道您在代码中的哪个位置 使用该资源...并修复它。

【讨论】:

  • 没有没有用,我已经浏览了所有的 xml 文件并更改了它们,但仍然没有,我尝试清理,重建 R.java,只是一切都不起作用
  • 好的,那么我会告诉你找到哪个资源给你这个问题的步骤......(现在编辑我的答案)
  • 我刚刚更新了我的答案,如果你能修复错误,请告诉我。
猜你喜欢
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多