【问题标题】:Using activities within libraries in main application project在主应用程序项目中使用库中的活动
【发布时间】:2014-09-29 20:44:37
【问题描述】:

我正在开发一个 Android 项目,其中我有一个有活动的库项目。

我有一个引用库项目并尝试在库项目中启动活动的主应用程序项目。在图书馆项目中,我有以下活动:

public class DirectoryPicker extends Activity
{

    GridView gridView = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.directory_picker);

        gridView = (GridView)findViewById(R.id.directory_picker_gridview);

        DirectoryAdapter.directories.add("String1");
        DirectoryAdapter.directories.add("String2");
        DirectoryAdapter.directories.add("String3");
        DirectoryAdapter.directories.add("String4");

        gridView.setAdapter(new DirectoryAdapter());
    }
}

我正在尝试在我的主应用程序项目中使用以下内容开始活动。

protected OnPreferenceClickListener mPrefDefaultBackupClickListener = new OnPreferenceClickListener()
        {
            @Override
            public boolean onPreferenceClick(Preference preference)
            {
                Intent intent = new Intent(getActivity(), DirectoryPicker.class);
                startActivity(intent);
                return false;
            }
        };

在我的主应用程序项目 AndroidManifest 文件中,我添加了以下内容:

<activity android:name="com.MyCompany.Library.DirectoryPicker">

        </activity>

当我尝试启动活动时,出现以下异常:

java.lang.NoClassDefFoundError: com.MyCompany.Library.DirectoryPicker

我看不出它不起作用的任何原因。

【问题讨论】:

  • 你是如何添加你的图书馆的?
  • 它是构建 gradle 文件中的一个参考。图书馆本身运行良好,只是活动不是

标签: android android-activity android-library


【解决方案1】:

我终于找到了问题所在。没有设法找到任何文档,但只是反复试验,发现如果我转到 File > Project Structure > Depdencies 然后选择我的库并将范围从 compile 更改为 Provided 并清理并重建所有活动,然后正确启动。

【讨论】:

    猜你喜欢
    • 2012-09-13
    • 2016-04-25
    • 2016-12-09
    • 1970-01-01
    • 2013-05-12
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多