android - findViewById() 上的 NoSuchFieldError

标签 android runtime-error findviewbyid

我要合并两个 android 项目,一个是 Main,另一个是链接为 Library。 但是我在这条线上遇到了一些麻烦:

Button modificarC;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_menu_calificaciones);
modificarC = (Button) findViewById(R.id.btn_aseso); //HERE

我尝试了 Project Clean... 我的依赖项也有 android-support-v4.jar

这是我的踪迹:

04-24 19:39:52.568: E/AndroidRuntime(9486): FATAL EXCEPTION: main
04-24 19:39:52.568: E/AndroidRuntime(9486): java.lang.NoSuchFieldError: com.utez.sistemas.sam.R$id.btn_aseso
04-24 19:39:52.568: E/AndroidRuntime(9486):     at com.utez.sistemas.sam.calificaciones.CalificacionesActivity.onCreate(CalificacionesActivity.java:67)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.Activity.performCreate(Activity.java:4465)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.os.Looper.loop(Looper.java:137)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at android.app.ActivityThread.main(ActivityThread.java:4507)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at java.lang.reflect.Method.invokeNative(Native Method)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at java.lang.reflect.Method.invoke(Method.java:511)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
04-24 19:39:52.568: E/AndroidRuntime(9486):     at dalvik.system.NativeStart.main(Native Method)

这里也是布局:

<LinearLayout
            style="@style/LoginFormContainer"
            android:layout_width="253dp"
            android:layout_height="260dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="30dp"
            android:orientation="vertical" >

            <Button
                android:id="@+id/btn_alta"
                android:layout_width="match_parent"
                android:layout_height="63dp"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="5dp"
                android:background="@drawable/btn_altacalif"
                android:contentDescription="@string/action_sign_in_register"
                android:paddingLeft="32dp"
                android:paddingRight="32dp"
                android:textAlignment="center" />

            <Button
                android:id="@+id/btn_aseso"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="5dp"
                android:layout_weight="0.16"
                android:background="@drawable/btn_modcalif"
                android:contentDescription="@string/action_sign_in_register"
                android:paddingLeft="32dp"
                android:paddingRight="32dp"
                android:textAlignment="center" />

        </LinearLayout>

最佳答案

我遇到了同样的错误,结果证明资源被覆盖了。

如果你有一个项目作为一个库在给定的 XML 文件中声明一些 id, 然后你的主项目重新定义那个 XML,原来的 id 不见了,但是直到运行时你才会看到错误。

就我而言,合作伙伴从项目中删除并提交了 XML,然后将其添加回库项目中。 Subclipse 似乎没有注意到这一点,因为我是最新的,但 XML 存在于主项目中。

关于android - findViewById() 上的 NoSuchFieldError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16204667/

相关文章:

c++ - 在 C++ 中使用 vector 的问题的解决方案在提交时显示 𝒓𝒖𝒏𝒕𝒊𝒎𝒆 𝒆𝒓𝒓𝒐𝒓 但在使用自定义输入运行相同输入时运行良好

ruby - 解释简洁的 ruby​​ 'nil' 错误

vba - 运行时错误 '438'

java - Android:应用程序在对话框中获取 editText 文本时崩溃

java - Android 从非 Activity 类获取上下文

android - 从 firebase 数据库填充 textView

android - 想要在 Android 上制作启动画面动画

android - 方向更改后,菜单中的 TextView 始终为 null

java - 如何通过标签识别EditText

android - 如何使用 RxAndroid 将流正确拆分为 4 个操作?