2013-02-26 28 views
2

我正在使用SpartacusRex的Terminal IDE和另一個應用程序DroidEdit在Android上構建和運行Java應用程序。一笑着一個文件的Hello World構建並運行完美,但是當我介紹的包我不能正確地塞米松類文件到一個jar文件:Android javac和dx - 故障處理,類名和路徑不匹配

從我的項目目錄:
javac的SRC/mypack/* java的
這將編譯Successully
DX --dex --output = Test.jar的SRC
這給了我下面的警告

故障處理:
類名(mypack /主)不匹配路徑(Main.class)
......在解析Main.class
......在處理Main.class

所有路徑和包名是否正確。 Main.java位於一個名爲「mypack」的文件夾中,並有一個包裝語句「package mypack;」。
我在做什麼錯了? 此外,使用--no-strict刪除警告,但輸出的jar文件未正確構建,無法運行。

任何幫助表示讚賞。謝謝:)

回答

0

根據你的問題,所有的* .class文件都在mypack/目錄下,所以發出下面的命令可能會對你有所幫助。

dx --dex --output=classes.dex src/mypack/ 

dx將從mypack直接挑中的所有文件。 考慮閱讀這個SO question

5

您必須將類文件放在名稱完全像包名稱的目錄中,然後從中創建jar文件。

例如com.test.me.MyActivity必須COM /測試/ ME/MyActivity.class

0

我有同樣的發展環境,同樣的問題。溶劑是使用中間罐。

  1. 首先編譯帶有包的類。 javac -d classes $srclist
  2. 創建中間罐(僅1個ARG允許)jar cf $idedir/a.jar a jar cf $idedir/b.jar b
  3. 創建可執行DX罐子 dx --dex --verbose --output=$jarfile $idedir/a.jar $idedir/b.jar

則DX罐子具有正確的包爲每個類