14

该项目昨天很好,但是当我今天更新 Sdk 工具和 ADT 时(REV 22),当我运行该项目时,出现了“无法解析 L...的超类”之类的错误。

我的项目使用 ActionbarSherlock 和 SlidingMenu。

我已经尝试过:

  1. 将外部 jar 复制到我项目的“libs”文件夹中。(我以前已经这样做了)
  2. Properties->Java Build Path->Projects 并在那里添加库项目。
  3. 清理并重建
  4. 重置计算机或 IDE
  5. 尝试其他也包含项目库的项目
  6. 将 ADT 和 Android sdk 工具更新到最新版本 22 后, Follow Class not found 错误

但他们都失败了。

整个Logcat如下:

05-17 06:53:50.087: E/Trace(949): error opening trace file: No such file or directory (2)
05-17 06:53:50.188: W/dalvikvm(949): Unable to resolve superclass of Lcom/qdnews/utils/AsyncImageLoaderX$1; (50)
05-17 06:53:50.197: W/dalvikvm(949): Link of class 'Lcom/qdnews/utils/AsyncImageLoaderX$1;' failed
05-17 06:53:50.197: E/dalvikvm(949): Could not find class 'com.qdnews.utils.AsyncImageLoaderX$1', referenced from method com.qdnews.utils.AsyncImageLoaderX.<init>
05-17 06:53:50.207: W/dalvikvm(949): VFY: unable to resolve new-instance 177 (Lcom/qdnews/utils/AsyncImageLoaderX$1;) in Lcom/qdnews/utils/AsyncImageLoaderX;
05-17 06:53:50.207: D/dalvikvm(949): VFY: replacing opcode 0x22 at 0x001b
05-17 06:53:50.207: I/dalvikvm(949): Could not find method android.support.v4.util.LruCache.put, referenced from method com.qdnews.utils.AsyncImageLoaderX.addBitmapToCache
05-17 06:53:50.207: W/dalvikvm(949): VFY: unable to resolve virtual method 112: Landroid/support/v4/util/LruCache;.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
05-17 06:53:50.217: D/dalvikvm(949): VFY: replacing opcode 0x6e at 0x0007
05-17 06:53:50.237: I/dalvikvm(949): Could not find method android.support.v4.util.LruCache.get, referenced from method com.qdnews.utils.AsyncImageLoaderX.getBitmapFromCache
05-17 06:53:50.237: W/dalvikvm(949): VFY: unable to resolve virtual method 111: Landroid/support/v4/util/LruCache;.get (Ljava/lang/Object;)Ljava/lang/Object;
05-17 06:53:50.237: D/dalvikvm(949): VFY: replacing opcode 0x6e at 0x0005
05-17 06:53:50.257: W/dalvikvm(949): Unable to resolve superclass of Lcom/qdnews/utils/AsyncImageLoaderX$1; (50)
05-17 06:53:50.257: W/dalvikvm(949): Link of class 'Lcom/qdnews/utils/AsyncImageLoaderX$1;' failed
05-17 06:53:50.267: D/dalvikvm(949): DexOpt: unable to opt direct call 0x025a at 0x1d in Lcom/qdnews/utils/AsyncImageLoaderX;.<init>
05-17 06:53:50.277: D/AndroidRuntime(949): Shutting down VM
4

4 回答 4

23

在 rev 22 中,他们添加了“Android Private Libraries”。

对于每个相关项目(包括 actionbarsherlock 项目),right click it -> Properties -> Java Build Path -> Order and Export -> Check Android Private Libraries

于 2013-05-17T07:14:30.067 回答
4

除了添加 Android Private Libraries 之外,还应该与目标 SDK 版本有关。

尝试在清单 XML 中设置 'android:targetSdkVersion="17"',这解决了我最近更新 SDK 后的构建问题

于 2013-05-20T02:13:18.327 回答
0

添加Android私人图书馆后,我遇到了问题

... Unable to execute dex: Multiple dex files define ...   
... Conversion to Dalvik format failed: Unable to execute dex: Multiple dex ...

删除除“Android 4.2”、“Android Dependencies”和“Android Private Libraries”之外的所有库后,问题得到解决,我可以导出我的应用程序。

于 2013-05-27T12:44:37.427 回答
0

我在为 22 更新 ADT 和 SDKTools 时遇到了同样的问题,我尝试了所有可以从互联网上找到的答案,但它不起作用,最后尝试在项目中设置 'android:targetSdkVerson="17"' .properties,然后清理它,然后问题就解决了。

于 2013-05-30T06:13:46.310 回答