2016-06-10 48 views
0

我在我的android应用程序中使用ButterKnife库。它在活动中正常工作。但是当我在Fragment中使用它时,它会在构建项目时给我一个错误。这里是我的代码:在片段中使用ButterKnife错误

package com.foxastudios.stopnosocomials.Fragments; 

public class FragmentObserveeOne extends Fragment { 

    @BindView(R.id.text_obs_one_name) TextView obsName; 

    public FragmentObserveeOne() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_observee_one, container, false); 
     ButterKnife.bind(this,rootView); 

     obsName.setText("TEXT"); 

     return rootView; 
    } 

} 

我的片段位于一个单独的包中,名为Fragments。这里是我得到的错误:

Error:(8, 39) error: cannot find symbol class Fragments 
Error:(13, 65) error: package Fragments does not exist 
Error:(27, 59) error: package Fragments does not exist 

回答

2

您的问题是该软件包包含大写字母。由于Java文档描述 - All packages should use lowercase letters.

包名都写在全部小写避免与类或接口 名称冲突。

重命名包fragments应该可以解决您的问题。

最后,请查看最新的Butterknife docs,以了解如何正确使用Butterknife与Fragment类,以避免内存泄漏,因为您的代码目前不使用Unbinder。文档的'BINDING RESET'部分应该指向正确的方向。

+0

谢谢。这对我工作:) –

+0

如果这解决了你的问题,请标记我的答案为接受:)很高兴为你工作。 –