2013-04-25 46 views
25

有兩個我想要合併的android項目,一個是Main,另一個是作爲Library鏈接的。 但我在這條線的一些煩惱:findViewById()上的NoSuchFieldError()

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 

我試圖清理項目也...我對我的依賴

Android的支持,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> 
+0

'btn_aseso'是你activity_menu_calificaciones佈局XML文件中的一個字段嗎? – 2013-04-25 00:55:09

+0

是的,我已經編輯了我的問題。 – 2013-04-25 00:59:40

+0

你的佈局對我來說很好看。它必須是你的項目設置的東西。我假設'activity_menu_calificaciones'文件只存在於其中一個項目中。 – 2013-04-25 01:05:01

回答

58

我有同樣的錯誤,事實證明,日在資源被覆蓋。

如果您有一個項目作爲一個庫在給定的XML文件中聲明某個標識, 那麼您的主項目重新定義了XML,原始標識已經消失,但在運行時間之前您不會看到錯誤。

就我而言,合作伙伴從項目中刪除並提交了XML,然後將其添加回庫項目中。 Subclipse似乎沒有注意到,因爲我是最新的,但XML在主項目中。

+4

是的,就是這樣!兩個同名的佈局文件。謝謝! – JerabekJakub 2015-01-09 08:10:42

+1

如愚蠢的錯誤...易於修復,但很難找到...只是做了同樣的錯誤,所以thx爲您的文章。 – velval 2016-02-23 23:44:08

+1

@JerabekJakub 您的評論節省了我的工作時間:) 我剛剛發現我在我的項目中使用了同樣命名的xmls,我將它們重命名並且錯誤消失 – Jayanth 2016-02-24 05:18:02

37

嗯,我是中國人。我的英語不是很好。

我也有這個問題。

的解決方案可能是: 重複XML文件的名稱,例如:A.XML在你的庫項目,在同一時間,A.XML是你的主要項目。 因此,請更改其中一個xml名稱。

+0

這幫了我。我有這個問題。更改活動XML名稱的確有竅門。但是我不能真正想到這個原因。 – JaydeepW 2014-09-15 06:49:10

+0

這有助於解決我的問題。我在兩個lib項目中複製了xml文件,其中一個是框架,另一個是共同使用框架作爲lib項目的地方。刪除適合我的通用xml並解決問題。 – Tahir 2015-01-28 13:47:50

+0

並且在常見的lib項目中的xml文件中沒有字段。來自框架的文件被普通的lib項目中的一次代替,並且由於常見的xml缺少該字段而導致錯誤。愚蠢的錯誤:P – Tahir 2015-01-28 13:52:47

-1

清潔工程爲我工作。

+0

這個問題涉及到重複的xml文件,在庫項目和主項目 – Mahesh 2016-12-17 09:48:02