繁体   English   中英

从jar实现接口时,Android应用程序无法启动

[英]android app won't start when implementing interface from jar

我是Android的新开发者,也是Eclipse的开发者,这就是我用来制作我的应用程序的东西。 目前,我的主要活动尚不多,只有三个按钮。 就像在模拟器中正常启动该应用程序一样。

我还包括了一个写入我的项目的(JAR)库,我希望主要活动从该库中实现一个接口,但是当我这样做时,应用程序崩溃了。

这是我从LogCat得到的:

03-26 05:54:56.211: E/AndroidRuntime(823): FATAL EXCEPTION: main
03-26 05:54:56.211: E/AndroidRuntime(823): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.abc/com.example.abc.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.abc.MainActivity" on path: /data/app/com.example.abc-2.apk
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.os.Looper.loop(Looper.java:137)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.ActivityThread.main(ActivityThread.java:5041)
03-26 05:54:56.211: E/AndroidRuntime(823):  at java.lang.reflect.Method.invokeNative(Native Method)
03-26 05:54:56.211: E/AndroidRuntime(823):  at java.lang.reflect.Method.invoke(Method.java:511)
03-26 05:54:56.211: E/AndroidRuntime(823):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-26 05:54:56.211: E/AndroidRuntime(823):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-26 05:54:56.211: E/AndroidRuntime(823):  at dalvik.system.NativeStart.main(Native Method)
03-26 05:54:56.211: E/AndroidRuntime(823): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.abc.MainActivity" on path: /data/app/com.example.abc-2.apk
03-26 05:54:56.211: E/AndroidRuntime(823):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
03-26 05:54:56.211: E/AndroidRuntime(823):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
03-26 05:54:56.211: E/AndroidRuntime(823):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
03-26 05:54:56.211: E/AndroidRuntime(823):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
03-26 05:54:56.211: E/AndroidRuntime(823):  ...  11 more

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.abc"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.abc.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>        
    </application>
</manifest>

活动:

import java.math.BigDecimal;
import java.util.List;
import BudgetEngine.BudgetEventHandler;
import BudgetEngine.BudgetItem;
import BudgetEngine.BudgetView;
import BudgetEngine.ExpenseGroup;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;


public class MainActivity extends Activity implements BudgetView {

    public final static String MESSAGE = "com.example.abc.MESSAGE";

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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


    @Override
    public void addBudgetEventHandler(BudgetEventHandler arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void removeBudgetEventHandler(BudgetEventHandler arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void setActualTotal(BigDecimal arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void setBudgetTotal(BigDecimal arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void setErrorMessage(String arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void setExpenseGroups(List<ExpenseGroup> arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void setIncomeItems(List<BudgetItem> arg0) {
        // TODO Auto-generated method stub

    } 
}

有谁知道什么地方可能出问题了?

如果您需要更多信息,请告诉我。

您可能不想使用从另一个包中仅创建一个类的jar,可以将其复制并粘贴到当前的packacge中,然后调用,向我们展示一些代码,尽管该类未在清单中声明,或者该类您尝试致电的方式不正确。

您需要罐子中的所有其他类吗? 还是一些?

更清楚地说... android的命令和导出首选项在各个版本之间可能是很复杂的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM