android – 在Eclipse中转换为Maven项会导致ClassNotFoundException

android – 在Eclipse中转换为Maven项会导致ClassNotFoundException,第1张

概述我在 Eclipse Juno中使用m2eclipse插件,使用JDK 1.7(根据Stack Overflow上的一些搜索从JRE 1.6切换). 新创建时,简单的Android应用程序运行正常.但是,当我将其转换为Maven项目时,每当我尝试运行应用程序时,我都会开始获取ClassNotFoundException.我已经尝试更新项目,重新启动Eclipse,检查构建路径中的所有库,清理和重建 我在 Eclipse Juno中使用m2eclipse插件,使用JDK 1.7(根据Stack Overflow上的一些搜索从JRE 1.6切换).

新创建时,简单的Android应用程序运行正常.但是,当我将其转换为Maven项目时,每当我尝试运行应用程序时,我都会开始获取ClassNotFoundException.我已经尝试更新项目,重新启动Eclipse,检查构建路径中的所有库,清理和重建项目,重新启动模拟器,并将我的pom.xml减少到最低限度.

这个错误的原因是什么?对Maven来说是一些简单的错误配置吗?

我的LogCat:

07-09 23:07:18.027: D/AndroIDRuntime(958): Shutting down VM07-09 23:07:18.027: W/dalvikvm(958): threadID=1: thread exiting with uncaught exception (group=0x409c01f8)07-09 23:07:18.137: E/AndroIDRuntime(958): FATAL EXCEPTION: main07-09 23:07:18.137: E/AndroIDRuntime(958): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myproject/com.example.myproject.MainActivity}: java.lang.classNotFoundException: com.example.myproject.MainActivity07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1880)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.ActivityThread.access0(ActivityThread.java:123)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.os.Handler.dispatchMessage(Handler.java:99)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.os.Looper.loop(Looper.java:137)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.ActivityThread.main(ActivityThread.java:4424)07-09 23:07:18.137: E/AndroIDRuntime(958):  at java.lang.reflect.Method.invokeNative(Native Method)07-09 23:07:18.137: E/AndroIDRuntime(958):  at java.lang.reflect.Method.invoke(Method.java:511)07-09 23:07:18.137: E/AndroIDRuntime(958):  at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)07-09 23:07:18.137: E/AndroIDRuntime(958):  at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:551)07-09 23:07:18.137: E/AndroIDRuntime(958):  at dalvik.system.NativeStart.main(Native Method)07-09 23:07:18.137: E/AndroIDRuntime(958): Caused by: java.lang.classNotFoundException: com.example.myactivity.MainActivity07-09 23:07:18.137: E/AndroIDRuntime(958):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)07-09 23:07:18.137: E/AndroIDRuntime(958):  at java.lang.classLoader.loadClass(ClassLoader.java:501)07-09 23:07:18.137: E/AndroIDRuntime(958):  at java.lang.classLoader.loadClass(ClassLoader.java:461)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.Instrumentation.newActivity(Instrumentation.java:1023)07-09 23:07:18.137: E/AndroIDRuntime(958):  at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1871)07-09 23:07:18.137: E/AndroIDRuntime(958):  ... 11 more

我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupID>com.example</groupID>  <artifactID>myproject</artifactID>  <version>0.0.1-SNAPSHOT</version>  <packaging>jar</packaging>  <dependencIEs><dependency>    <groupID>com.Google.androID</groupID>    <artifactID>androID</artifactID>    <version>4.1.1.4</version>    <scope>provIDed</scope></dependency>  </dependencIEs>  <build>    <sourceDirectory>src</sourceDirectory>    <plugins>      <plugin>        <artifactID>maven-compiler-plugin</artifactID>        <version>3.0</version>        <configuration>          <source>1.7</source>          <target>1.7</target>        </configuration>      </plugin>    </plugins>  </build></project>

我的MainActivity.java:

package com.example.myproject;import androID.os.Bundle;import androID.app.Activity;import androID.vIEw.Menu;public class MainActivity extends Activity {    @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;    }}

更新:我发现在pom.xml上尝试做Maven Clean和Maven生成源成功.但是,Maven安装给我一个错误:

[ERROR] COMPILATION ERROR : [INFO] -------------------------------------------------------------[ERROR] MainActivity.java:[12,33] package R does not exist[ERROR] MainActivity.java:[18,44] package R does not exist

我还在最新的编辑中添加了一些内容(依赖和包装)以及修改过的(1.6-> 1.7,3.1-> 3.0)pom.xml文件.

解决方法 在我看来,为了避免这种情况,你不应该在Eclipse中创建一个新项目,然后将其转换为maven,但是从头开始用maven创建androID项目.此外,总是在终端中构建您的项目(以防万一)因为m2eclipse不时会产生错误,特别是在复杂的项目中.

试试这个(在终端):

>制作一个文件夹,例如. myMvnProjects.
>转到此文件夹.
>类型:mvn archetype:generate
>选择de.akquinet.androID.archetypes:androID-quickstart(为AndroID应用程序创建骨架)(或其他 – 它取决于您的需求).
>提供必要参数(platform,groupID,artifactID,version等)
>点击回车(或在Mac上返回)就是这样–Maven为您生成一个简单的项目.
>键入:mvn clean install并等待它构建.

顺便说一句,我很好奇为什么你有< packaging> jar< / packaging>在你的主要androID项目中.你应该有< packaging> apk< / packaging>.更重要的是,Maven对JDK 7没有任何问题.

总结

以上是内存溢出为你收集整理的android – 在Eclipse中转换为Maven项会导致ClassNotFoundException全部内容,希望文章能够帮你解决android – 在Eclipse中转换为Maven项会导致ClassNotFoundException所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存