gpt4 book ai didi

安卓/ eclipse : Removing/src folder from build path

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:23 27 4
gpt4 key购买 nike

这听起来像是一个愚蠢的问题,但是当我从“构建路径”中删除 Android 项目的/src 文件夹时(只剩下 MainActivity/gen)到底发生了什么?我仍然可以编译和运行项目,那么构建路径有什么作用?

背景:我对将 Maven 构建的项目导入 Eclipse 感到有点疯狂。它有/src/main/package 那种文件夹结构,所以当我导入它时,所有声明的包名称都不匹配(显然是一个众所周知的问题)。我的第一次尝试是在导入项目之前将包在文件夹结构中向上移动(直接到/src),但这给了我很多其他问题(关于导入其他包)。

第二次尝试(在 SO 的几个问题上推荐这样做)只是从构建路径中删除/src 文件夹,瞧,包声明工作并且在 Eclipse 中没有更多显示的问题,但我遇到了一个非常奇怪的问题在运行时,我不知道它是否与我从构建路径中删除/src 文件夹有关。

编辑:这是运行应用程序时的错误。我应该补充一点,MyApplication 不是 Activity,而是扩展了 Application(用于存储全局变量)。谷歌地图用于该项目,但不用于第一个 Activity 。

02-20 14:39:34.781: E/AndroidRuntime(1479): FATAL EXCEPTION: main
02-20 14:39:34.781: E/AndroidRuntime(1479): java.lang.RuntimeException: Unable to instantiate application com.example.myapp.MyApplication: java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.MyApplication" on path: /system/framework/com.google.android.maps.jar:/data/app/com.example.myapp-1.apk
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4364)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.ActivityThread.access$1300(ActivityThread.java:141)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.os.Handler.dispatchMessage(Handler.java:99)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.os.Looper.loop(Looper.java:137)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.ActivityThread.main(ActivityThread.java:5039)
02-20 14:39:34.781: E/AndroidRuntime(1479): at java.lang.reflect.Method.invokeNative(Native Method)
02-20 14:39:34.781: E/AndroidRuntime(1479): at java.lang.reflect.Method.invoke(Method.java:511)
02-20 14:39:34.781: E/AndroidRuntime(1479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-20 14:39:34.781: E/AndroidRuntime(1479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-20 14:39:34.781: E/AndroidRuntime(1479): at dalvik.system.NativeStart.main(Native Method)
02-20 14:39:34.781: E/AndroidRuntime(1479): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.MyApplication" on path: /system/framework/com.google.android.maps.jar:/data/app/com,example.myapp-1.apk
02-20 14:39:34.781: E/AndroidRuntime(1479): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
02-20 14:39:34.781: E/AndroidRuntime(1479): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
02-20 14:39:34.781: E/AndroidRuntime(1479): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.Instrumentation.newApplication(Instrumentation.java:968)
02-20 14:39:34.781: E/AndroidRuntime(1479): at android.app.LoadedApk.makeApplication(LoadedApk.java:499)
02-20 14:39:34.781: E/AndroidRuntime(1479): ... 11 more

最佳答案

“当我从‘构建路径’中删除 Android 项目的/src 文件夹时(只剩下 MainActivity/gen)到底发生了什么?”

您创建了一个“空 apk”,您只能访问其中的资源 :)

关于maven,你有两个选择:

  • 使用 Maven 源结构并告诉 Eclipse 源在哪里。将项目导入为“现有 Android 代码”,然后转到 Java 构建路径,删除“src”文件夹并添加文件夹“src/main/java/”和“src/test/java”。
  • 使用 eclipse 默认包结构并告诉 maven 源在哪里。在您的 pom.xml 中,在下面添加以下指令以告诉 Maven 它应该在哪里寻找源代码:<sourceDirectory>src</sourceDirectory>

关于安卓/ eclipse : Removing/src folder from build path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14853833/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com