我想在Android中创建一个库项目,并在其他项目中使用该库。包括JAR库到Android项目,并从它开始一个活动
我创建了一个简单的库项目,其中一个布局显示一些文本。检查它被设置为'is Library'并且已经去。
我把'bin'目录中创建的Jar文件复制到'assets'文件夹中的一个新项目中(同样尝试了'libs'方法)。
我检查过'属性 - > java构建路径 - >订单和导出',它在那里并被选中。
在应用程序中,我试图从库中推出的活动,使用:
Button btnLoad = (Button)findViewById(R.id.btnLoadLibrary);
btnLoad.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, LibraryActivity.class);
startActivityForResult(intent, 0);
}
});
已经导入库:这里
import com.example.superlibrary.LibraryActivity;
没有错误。
然后,当我启动应用程序,并按下按钮,我得到:
05-01 20:24:07.030: E/AndroidRuntime(19011): FATAL EXCEPTION: main
05-01 20:24:07.030: E/AndroidRuntime(19011): java.lang.NoClassDefFoundError: com.example.superlibrary.R$layout
05-01 20:24:07.030: E/AndroidRuntime(19011): at com.example.superlibrary.LibraryActivity.onCreate(LibraryActivity.java:12)
05-01 20:24:07.030: E/AndroidRuntime(19011): at android.app.Activity.performCreate(Activity.java:5206)
05-01 20:24:07.030: E/AndroidRuntime(19011): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
为了确保,我已经检查应用程序的清单文件,我必须有:
<activity
android:name="com.example.superlibrary.LibraryActivity"
android:label="LibraryActivity" >
</activity>
所以它被认可并包括在内...
任何想法为什么会发生这个错误? (java.lang.NoClassDefFoundError)
谢谢!
我开始一个活动认为在SDK-17中你可以这样做 - 至少这是在某些地方写的。 – Roman 2013-05-01 17:41:55
如果没有 - 是否有隐藏所有库代码的方法? – Roman 2013-05-01 17:42:17
@roman我刚刚从文档中引用了上述内容。我没有看到你在第一条评论 – Raghunandan 2013-05-01 17:44:56