2016-08-03 22 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布局。

谢谢你的关注!

相关问题