手动构建Android应用程序时,`javac`没有看到Android支持库

时间:2016-06-09 10:48:27

标签: java android jar

我从命令行手动构建Android应用程序。我使用javac来编译它。当我不使用Android Support V4库时一切正常。出于任何原因,javac没有看到此jar文件。

我的命令行如下:

"c:\Program Files\Java\bin\javac.exe" -deprecation -Xlint:-options -source 1.7 -target 1.7 -d classes -cp "C:\Users\Developer\Android\sdk\platforms\android-23\android.jar";"C:\Users\Developer\Android\sdk\extras\android\m2repository\com\android\support\support-v4\23.4.0\support-v4-23.4.0-sources.jar";"C:\Users\Developer\Android\sdk\platforms\android-23\optional\org.apache.http.legacy.jar";classes -sourcepath java @fileslist.txt

这里我引用了"C:\Users\Developer\Android\sdk\extras\android\m2repository\com\android\support\support-v4\23.4.0\support-v4-23.4.0-sources.jar",它是Android Support v4库的路径。 jar文件存在,当我用Java反编译器打开它时,我发现它包含android.support.v4.app.FragmentActivity类定义。但是,javac没有看到它,我收到以下错误:

error: package android.support.v4.app does not exist

是什么原因?对javac文件计数或命令行长度等有jar个限制吗?

1 个答案:

答案 0 :(得分:0)

我正在调查一个类似但不同的问题。我希望但不必指向整个支持文件夹。我的APK已编译,但通过AppCompatActivity分解,但在Activity下运行良好。

另一方面,您需要将jars复制到项目的“ libs”目录,然后在运行Java编译器时添加extdirs选项。向该选项添加“ libs”目录,就像这样;

copy C:\...\support-v4-23.4.0-sources.jar <path to project>\libs\support-v4-23.4.0-sources.jar

javac @normal_options -extdir <path to project>\libs\ @sources

您的项目应编译确定。但是您可能和我一样处在困境中。我不确定支持库是否具有广泛的依赖关系。复制一个罐子让我陷入了目前的困境。