2016-08-03 19 views
1

我遇到R.java問題。我創建了一個庫,它在Genymotion上完美運行。然後我將庫的aar複製到我的主項目中。主項目在圖書館的代碼中崩潰。

這裏是我的庫代碼:

LayoutInflater user = (LayoutInflater)this.mContext.getSystemService("layout_inflater"); 
convertView = user.inflate(layout.item_list_friends, (ViewGroup)null); 

viewHolder = new ListFriendsAdapter.ViewHolder(null); 
viewHolder.imgAvatar = (ImageView)convertView.findViewById(id.imgAvatar); 
viewHolder.textEmail = (TextView)convertView.findViewById(id.textEmail); 
viewHolder.textName = (TextView)convertView.findViewById(id.textName); 
viewHolder.imgFollower = (ImageView)convertView.findViewById(id.imgFollower); 

的Android Studio不會產生imgFollower的ID。這裏是R.java文件:

public static final class id { 
    public static final int imgAvatar = 0x7f0e00fc; 
    public static final int textEmail = 0x7f0e00fe; 
    public static final int textName = 0x7f0e00fd; 
} 

以下是錯誤消息:

FATAL EXCEPTION: mainjava.lang.NoSuchFieldError: 
com.nexlesoft.twittermodule.R$id.imgFollower 
+0

它是在XML中,你嘗試一個乾淨的重建? –

+0

即使我刪除了所有的構建文件夾並重新構建以創建新的'aar',它仍然無法工作。這就是爲什麼它能夠創建'imgAvatar','textEmail'和'textName'而不是'imgFollower'? – LuongTruong

回答

0

Android Studio does not generate the id of imgFollower

findViewById(id.imgFollower);產生什麼 - 在XML佈局/資源文件夾一樣。

如果R.java沒有該資源,那麼您在XML中缺少一個加號。例如。

android:id="@+id/imgFollower" 

或者,如果你使用的資源的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <item name="imgFollower" type="id"/> 
</resources> 
+0

謝謝你的回答。我嘗試過,但錯誤仍然存​​在。我終於找出原因。還有另一個'aar'文件,它與'xml'佈局具有相同的名稱。 – LuongTruong

0

我找出原因。錯誤消息不清楚。它找不到id的原因是因爲有另一個aar文件具有相同的名稱。

解決方法是重命名xml佈局。

謝謝你的關注!

相關問題