我有一个标记为库的项目和一个使用该库的主项目。 看起来一切都很好,主项目的清单中有来自库的带有孔名称(package.name)的活动,但我不知道如何调用我导入mainactivity的库类(import com.example。 libreriasuscripcion.MainActivity;)从库进入main,当我这样称呼它时:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("Juego - onCreate", "en Onclick");
Intent i = new Intent(getBaseContext(), MainActivity.class);
startActivity(i);
}
有一个错误:这是logCat
03-21 09:45:00.534: E/AndroidRuntime(413): FATAL EXCEPTION: main
03-21 09:45:00.534: E/AndroidRuntime(413): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.juego/com.example.libreriasuscripcion.MainActivity}: java.lang.InstantiationException: com.example.libreriasuscripcion.MainActivity
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.os.Handler.dispatchMessage(Handler.java:99)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.os.Looper.loop(Looper.java:123)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-21 09:45:00.534: E/AndroidRuntime(413): at java.lang.reflect.Method.invokeNative(Native Method)
03-21 09:45:00.534: E/AndroidRuntime(413): at java.lang.reflect.Method.invoke(Method.java:521)
03-21 09:45:00.534: E/AndroidRuntime(413): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-21 09:45:00.534: E/AndroidRuntime(413): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-21 09:45:00.534: E/AndroidRuntime(413): at dalvik.system.NativeStart.main(Native Method)
03-21 09:45:00.534: E/AndroidRuntime(413): Caused by: java.lang.InstantiationException: com.example.libreriasuscripcion.MainActivity
03-21 09:45:00.534: E/AndroidRuntime(413): at java.lang.Class.newInstanceImpl(Native Method)
03-21 09:45:00.534: E/AndroidRuntime(413): at java.lang.Class.newInstance(Class.java:1429)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
03-21 09:45:00.534: E/AndroidRuntime(413): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
03-21 09:45:00.534: E/AndroidRuntime(413): ... 11 more
你可以帮帮我吗?提前致谢
答案 0 :(得分:0)
如果您使用的是eclipse IDE,请记得将库包含在导出的APK文件中。
右键单击您的项目,转到property-> java build path-> Order and Export
答案 1 :(得分:0)
如果您在项目中使用库意味着
1.您需要将库添加到构建路径中。
2.go to> project properties-> javabuild path0> order and export - >选择你的库。
3.确保在当前项目清单文件中添加库活动
4.您必须指定图书馆类的全名 在你的情况下
Intent i = new Intent(getBaseContext(), com.example.libreriasuscripcion.MainActivity.class);
答案 2 :(得分:0)
我按照你说的尝试了,但仍然是同样的错误,这是我的清单
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="com.example.libreriasuscripcion.Almacen" >
<activity
android:name="com.example.juego.Juego"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.libreriasuscripcion.MainActivity">
</activity>
<activity
android:name="com.example.libreriasuscripcion.Almacen"
android:label="@string/title_activity_almacen" >
</activity>
<activity
android:name="com.example.libreriasuscripcion.Hello"
android:label="@string/title_activity_hello" >
</activity>
</application>
这就是我调用库的方式
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("Juego - onCreate", "en Onclick");
//Intent i = new Intent(getBaseContext(), MainActivity.class);
intent.setAction(Intent.ACTION_MAIN);
intent.setClassName(getBaseContext(), "com.example.libreriasuscripcion.MainActivity.class");
intent.putExtra("code", "795006");
intent.putExtra("keyword", "testandroid");
startActivityForResult(intent, 1);
//startActivity(i);
}
});
我正在使用和应用程序来保存数据但我删除它认为这是错误,我使用共享首选项来做它
答案 3 :(得分:0)
问题在于我创建库的方式,通过一步一步地遵循这个tuto它工作正常http://es.slideshare.net/ajdgeniz/como-hacer-un-archivo-jar-en-eclipse并且它非常简单。然后是从库中导入要使用的类并像往常一样使用,因为Android将它们识别为本地
谢谢大家