我从命令行手动构建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
个限制吗?
答案 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
您的项目应编译确定。但是您可能和我一样处在困境中。我不确定支持库是否具有广泛的依赖关系。复制一个罐子让我陷入了目前的困境。