1

我有一个关于 Eclipse 的问题。

有一个使用 Maven 配置的 android 项目。这是来自子项目的 pom.xml(所有版本控制配置已移至父 pom.xml):

<dependency>
    <groupId>android.support</groupId>
    <artifactId>compatibility-v4</artifactId>
</dependency>
<dependency>
    <groupId>android.support</groupId>
    <artifactId>compatibility-v7-appcompat</artifactId>
         <type>apklib</type>
</dependency>
<dependency>
     <groupId>android.support</groupId>
     <artifactId>compatibility-v7-appcompat</artifactId>
         <type>jar</type>
</dependency>

还有一个mavenised compatible-v7-appcompat 项目作为库导入工作区。该项目被复制到工作区(因为其他位置的库存在问题)并导入到我的 maven 项目(属性 -> Android -> 库)。

我有一个活动。

public class HelloActivity extends ActionBarActivity

现在,当我尝试调试应用程序时出现错误:

01-02 13:36:22.753: E/AndroidRuntime(11867): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{somepackage.android/somepackage.android.hello.activities.HelloActivity}:
java.lang.ClassNotFoundException: somepackage.android.hello.activities.HelloActivity in loader dalvik.system.PathClassLoader[/data/app/somepackage.android-2.apk]

我尝试了其他问题的所有内容。在两个项目的构建路径中订购和导出,仍然没有(使用 Eclipse 从这里添加资源库:http: //developer.android.com/tools/support-library/setup.html

当我将其更改为

public class HelloActivity extends FragmentActivity

即使我在 AndroidManifest 中保留 AppCompat 样式,它也可以正常工作:

<activity
    android:name="somepackage.android.hello.activities.HelloActivity"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
    android:windowSoftInputMode="stateHidden|adjustResize" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

更重要的是,在设备上加载应用程序时出现错误:

[2014-01-02 13:36:19 - compatibility-v7-appcompat] Could not find compatibility-v7-appcompat.apk!

即使认为这个项目在 android 属性中设置了“Is Library”复选框。

这是项目的样子: 项目

我会很感激帮助:)

4

2 回答 2

0

检查java build path->order/export下是否选择了package。如果它没有选择然后选择。如果未在此列表下选择库,则构建时不会出错。运行时,项目特定的包不会随该项目一起导出,这将导致 ClassNotFoundException

于 2014-01-02T13:00:57.510 回答
0

感谢 CoolMonster,我通过这样做解决了它:

  • mavenised compatible-v7-appcompat 项目中
    • Project -> Properties -> Order and Export ->选择 android-support-v7-appcompat.jar
  • 我的项目中
    • Project -> Properties -> Order and Export -> 选择 Maven Dependencies、Android Private Libraries 和 Android Dependencies。
于 2014-01-02T13:37:34.973 回答