【问题标题】:The system cannot find the file specified "classes.dex"系统找不到指定的文件“classes.dex”
【发布时间】:2013-02-21 12:28:07
【问题描述】:

我已经开发了 android 模块项目并部署在 Titanium Project 中。当我运行 Titanium 项目时,经常出现此错误

    [INFO] logfile = C:\ws\Testw2\build.log
    [INFO] Building Testw2 for Android ... one moment
    [INFO] Titanium SDK version: 3.0.0 (12/12/12 18:49 a5894b3)
    [INFO] Fastdev server running, deploying in Fastdev mode
    [INFO] Copying CommonJS modules...
    [INFO] Copying project resources..
    [INFO] Tiapp.xml unchanged, skipping class generation
    [INFO] Force including all modules...
    [INFO] Compiling Javascript Resources ...
    [INFO] Compiling localization files
    [ERROR] Application Installer abnormal process termination. Process exit value was 1
    [ERROR] Exception occured while building Android project:
    [ERROR] Traceback (most recent call last):
    [ERROR]   File "C:\Users\Administrator\AppData\Roaming\Titanium\mobilesdk\win32\3.0.0.GA\android\builder.py", line 2376, in <module>
    [ERROR]     builder.build_and_run(False, avd_id, debugger_host=debugger_host)
    [ERROR]   File "C:\Users\Administrator\AppData\Roaming\Titanium\mobilesdk\win32\3.0.0.GA\android\builder.py", line 2192, in build_and_run
    [ERROR]     launched, launch_failed = self.package_and_deploy()
    [ERROR]   File "C:\Users\Administrator\AppData\Roaming\Titanium\mobilesdk\win32\3.0.0.GA\android\builder.py", line 1688, in package_and_deploy
    [ERROR]     unsigned_apk = self.create_unsigned_apk(ap_)
    [ERROR]   File "C:\Users\Administrator\AppData\Roaming\Titanium\mobilesdk\win32\3.0.0.GA\android\builder.py", line 1559, in create_unsigned_apk
    [ERROR]     apk_zip.write(self.classes_dex, 'classes.dex')
    [ERROR]   File "C:\Python27\lib\zipfile.py", line 1031, in write
    [ERROR]     st = os.stat(filename)
    [ERROR] WindowsError: [Error 2] The system cannot find the file specified: 'C:\\ws\\Testw2\\build\\android\\bin\\classes.dex'

手动删除构建文件夹并运行后,我收到以下错误

    [INFO] logfile = C:\ws\Testw2\build.log
    [INFO] Building Testw2 for Android ... one moment
    [INFO] Titanium SDK version: 3.0.0 (12/12/12 18:49 a5894b3)
    [INFO] Fastdev server running, deploying in Fastdev mode
    [INFO] Copying CommonJS modules...
    [INFO] Copying project resources..
    [INFO] Detected change in tiapp.xml, or assets deleted. Forcing full re-build...
    [INFO] Force including all modules...
    [INFO] Force including all modules...
    [INFO] Compiling Javascript Resources ...
    [INFO] Compiling localization files
    [INFO] Compiling Android Resources... This could take some time
    [ERROR] Application Installer abnormal process termination. Process exit value was 1
    [ERROR] 
    [ERROR] UNEXPECTED TOP-LEVEL EXCEPTION:
    [ERROR] java.lang.IllegalArgumentException: already added: Lorg/apache/commons/codec/binary/Base64;
    [ERROR]     at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
    [ERROR]     at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
    [ERROR]     at com.android.dx.command.dexer.Main.processClass(Main.java:301)
    [ERROR]     at com.android.dx.command.dexer.Main.processFileBytes(Main.java:278)
    [ERROR]     at com.android.dx.command.dexer.Main.access$100(Main.java:56)
    [ERROR]     at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
    [ERROR]     at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
    [ERROR]     at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
    [ERROR]     at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
    [ERROR]     at com.android.dx.command.dexer.Main.processOne(Main.java:247)
    [ERROR]     at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
    [ERROR]     at com.android.dx.command.dexer.Main.run(Main.java:139)
    [ERROR]     at com.android.dx.command.dexer.Main.main(Main.java:120)
    [ERROR]     at com.android.dx.command.Main.main(Main.java:89)
    [ERROR] 
    [ERROR] UNEXPECTED TOP-LEVEL EXCEPTION:
    [ERROR] java.lang.IllegalArgumentException: already added: Lorg/apache/http/entity/mime/content/StringBody;
    [ERROR]     at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
    [ERROR]     at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
    [ERROR]     at com.android.dx.command.dexer.Main.processClass(Main.java:301)
    [ERROR]     at com.android.dx.command.dexer.Main.processFileBytes(Main.java:278)
    [ERROR]     at com.android.dx.command.dexer.Main.access$100(Main.java:56)
    [ERROR]     at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
    [ERROR]     at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
    [ERROR]     at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
    [ERROR]     at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
    [ERROR]     at com.android.dx.command.dexer.Main.processOne(Main.java:247)
    [ERROR]     at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
    [ERROR]     at com.android.dx.command.dexer.Main.run(Main.java:139)
    [ERROR]     at com.android.dx.command.dexer.Main.main(Main.java:120)
    [ERROR]     at com.android.dx.command.Main.main(Main.java:89)
    [ERROR] 2 errors; aborting
    [ERROR] System Error while compiling Android classes.dex

【问题讨论】:

  • 您是否尝试手动删除构建文件夹 (C:\\ws\\Testw2\\build) 然后构建?您是否安装了模块开发可能需要的 Android NDK?
  • 是的,我已经用 SDK 和 NDK 设置了模块开发的环境,我得到了 .zip 文件。之后,我在 Titanium Project 中添加了 .zip 文件。在这里只有我得到错误。我也手动删除了 biuld 文件夹并运行。得到相同的结果
  • 你的意思是模块作为 zip 文件?那是错误的。您需要将该 zip 文件夹的内容放入项目中。操作方法如下:docs.appcelerator.com/titanium/latest/#!/guide/…
  • nope.. 不是作为 zip 文件的模块。 build.xml --> ant build --> dist 文件夹 module-android-1.zip
  • 是的,你需要把这个包的内容放到你的项目中。不是压缩文件。这是构建您的应用程序或模块的日志文件吗?

标签: android titanium appcelerator titanium-mobile titanium-modules


【解决方案1】:

对于其他有相同或相似问题的人:

[错误] 意外的顶级异常:

[错误] java.lang.IllegalArgumentException:已添加: lorg/apache/commons/codec/binary/Base64;

表示您在模块中添加了一个库,该库也由 Android 或 Titanium 本身提供。只需删除这些额外的库并尝试重新编译所有内容。

有关在钛模块中使用外部库的更多信息,请访问:http://developer.appcelerator.com/blog/2011/11/integrating-an-external-library-in-an-android-module.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-21
    • 2023-03-17
    • 2017-12-21
    • 2015-09-28
    • 2015-11-08
    • 2018-08-26
    • 2019-01-20
    相关资源
    最近更新 更多