运行DictionaryPC的compile.sh时Java找不到android相关包的原因是什么?
报错原因与解决方案
核心报错原因
你遇到的编译错误本质是使用标准JDK编译依赖Android框架类的代码:android.content.ContentResolver属于Android SDK原生类、android.support.v4.provider.DocumentFile属于Android官方兼容包类,二者都不是标准JDK自带的类;你本地../com/hughes/android/目录下存放的是项目自身的业务代码,并非上述Android框架类,所以排查路径配置的方向不匹配问题根源。
修复方案
- 方案1(保留Android相关逻辑):
- 本地下载Android SDK,取出SDK目录下对应版本的
android.jar包,同时下载android support v4兼容包(若项目适配新版本Android可替换为androidx documentfile依赖包) - 修改
compile.sh脚本中的javac编译命令,在-cp(类路径)参数中添加上述两个依赖包的绝对路径,示例修改参考:
路径需替换为你本地依赖包的实际存放路径。# 原命令(示例) javac -source 1.8 -target 1.8 ../Dictionary/src/com/hughes/android/dictionary/engine/*.java # 修改后 javac -source 1.8 -target 1.8 -cp ".:/home/yourname/android-sdk/platforms/android-33/android.jar:/home/yourname/lib/support-v4.jar" ../Dictionary/src/com/hughes/android/dictionary/engine/*.java
- 本地下载Android SDK,取出SDK目录下对应版本的
- 方案2(仅使用PC端功能):
直接注释/删除代码中导入Android包、引用DocumentFile、ContentResolver的相关代码块,无需额外依赖即可用标准JDK完成编译。
内容的提问来源于stack exchange,提问作者headphone53
相关产品推荐
相关产品推荐

