当前位置: 首页 > news >正文

集成 mupdf-android 的示例做为模块使用报错,程序包android.support.v4.view不存在

  • 在 Android 开发中,集成 mupdf-android 的示例做为模块使用,运行项目时,出现如下错误信息
> Task :mupdf:compileDebugJavaWithJavac FAILED ...\mupdf\src\main\java\com\artifex\mupdfdemo\ReaderView.java:7: 错误: 程序包android.support.v4.view不存在 import android.support.v4.view.MotionEventCompat; ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:28: 错误: 找不到符号 import android.support.v4.app.Fragment; ^ 符号: 类 Fragment 位置: 程序包 android.support.v4.app ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:50: 错误: 找不到符号 public class MuPDFFragment extends Fragment implements FilePicker.FilePickerSupport ^ 符号: 类 Fragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\ReaderView.java:533: 错误: 找不到符号 int ident = MotionEventCompat.getActionIndex(event); ^ 符号: 变量 MotionEventCompat 位置: 类 ReaderView ...\mupdf\src\main\java\com\artifex\mupdfdemo\ReaderView.java:535: 错误: 找不到符号 mLastTouchX = MotionEventCompat.getX(event, ident); ^ 符号: 变量 MotionEventCompat 位置: 类 ReaderView ...\mupdf\src\main\java\com\artifex\mupdfdemo\ReaderView.java:536: 错误: 找不到符号 mLastTouchY = MotionEventCompat.getY(event, ident); ^ 符号: 变量 MotionEventCompat 位置: 类 ReaderView ...\mupdf\src\main\java\com\artifex\mupdfdemo\ReaderView.java:540: 错误: 找不到符号 float upX = MotionEventCompat.getX(event, ident); ^ 符号: 变量 MotionEventCompat 位置: 类 ReaderView ...\mupdf\src\main\java\com\artifex\mupdfdemo\ReaderView.java:541: 错误: 找不到符号 float upY = MotionEventCompat.getY(event, ident); ^ 符号: 变量 MotionEventCompat 位置: 类 ReaderView ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:183: 错误: 找不到符号 mAlertDialog.setButton(AlertDialog.BUTTON2, getString(R.string.cancel), listener); ^ 符号: 方法 getString(int) ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:186: 错误: 找不到符号 mAlertDialog.setButton(AlertDialog.BUTTON1, getString(R.string.okay), listener); ^ 符号: 方法 getString(int) ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:190: 错误: 找不到符号 mAlertDialog.setButton(AlertDialog.BUTTON3, getString(R.string.cancel), listener); ^ 符号: 方法 getString(int) ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:193: 错误: 找不到符号 mAlertDialog.setButton(AlertDialog.BUTTON1, getString(R.string.yes), listener); ^ 符号: 方法 getString(int) ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:195: 错误: 找不到符号 mAlertDialog.setButton(AlertDialog.BUTTON2, getString(R.string.no), listener); ^ 符号: 方法 getString(int) ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:270: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:273: 错误: 找不到符号 super.onCreate(savedInstanceState); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:281: 错误: 找不到符号 core = (MuPDFCore)getActivity().getLastNonConfigurationInstance(); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:288: 错误: 找不到符号 Intent intent = getActivity().getIntent(); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:292: 错误: 找不到符号 boolean hasArguments = getArguments() != null && getArguments().getString(PARAM_PATH_PDF) != null; ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:292: 错误: 找不到符号 boolean hasArguments = getArguments() != null && getArguments().getString(PARAM_PATH_PDF) != null; ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:297: 错误: 找不到符号 uri = Uri.parse(getArguments().getString(PARAM_PATH_PDF)); ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:346: 错误: 找不到符号 Resources res = getResources(); ^ 符号: 方法 getResources() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:352: 错误: 找不到符号 getActivity().finish(); ^ 符号: 方法 getActivity() ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:349: 错误: 找不到符号 alert.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.dismiss), ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:367: 错误: 找不到符号 if (getArguments() != null && getArguments().getString(PARAM_PASSWORD_PDF) != null) { ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:367: 错误: 找不到符号 if (getArguments() != null && getArguments().getString(PARAM_PASSWORD_PDF) != null) { ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:368: 错误: 找不到符号 String password = getArguments().getString(PARAM_PASSWORD_PDF); ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:387: 错误: 找不到符号 getActivity().finish(); ^ 符号: 方法 getActivity() ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:384: 错误: 找不到符号 alert.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.dismiss), ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:394: 错误: 找不到符号 getActivity().finish(); ^ 符号: 方法 getActivity() ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:412: 错误: 找不到符号 alert.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.okay), ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:426: 错误: 找不到符号 getActivity().finish(); ^ 符号: 方法 getActivity() ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:422: 错误: 找不到符号 alert.setButton(AlertDialog.BUTTON_NEGATIVE, getString(R.string.cancel), ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:632: 错误: 找不到符号 startActivityForResult(intent, OUTLINE_REQUEST); ^ 符号: 方法 startActivityForResult(Intent,int) ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:641: 错误: 找不到符号 SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:665: 错误: 找不到符号 if (getArguments() != null && getArguments().getBoolean(PARAM_SHOW_CONTROLS)) { ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:665: 错误: 找不到符号 if (getArguments() != null && getArguments().getBoolean(PARAM_SHOW_CONTROLS)) { ^ 符号: 方法 getArguments() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:688: 错误: 找不到符号 mDocView.setAdapter(mReflow ? new MuPDFReflowAdapter(mContext, core) : new MuPDFPageAdapter(getActivity(), this, core)); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:700: 错误: 找不到符号 showInfo(mReflow ? getString(R.string.entering_reflow_mode) : getString(R.string.leaving_reflow_mode)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:700: 错误: 找不到符号 showInfo(mReflow ? getString(R.string.entering_reflow_mode) : getString(R.string.leaving_reflow_mode)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:703: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:705: 错误: 找不到符号 super.onSaveInstanceState(outState); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:714: 错误: 找不到符号 SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:730: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:732: 错误: 找不到符号 super.onPause(); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:738: 错误: 找不到符号 SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:769: 错误: 找不到符号 super.onDestroy(); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:893: 错误: 找不到符号 showInfo(getString(R.string.format_currently_not_supported)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:897: 错误: 找不到符号 Intent myIntent = getActivity().getIntent(); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:901: 错误: 找不到符号 showInfo(getString(R.string.print_failed)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:910: 错误: 找不到符号 startActivityForResult(printIntent, PRINT_REQUEST); ^ 符号: 方法 startActivityForResult(Intent,int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:918: 错误: 找不到符号 SafeAnimatorInflater safe = new SafeAnimatorInflater(getActivity(), R.animator.info, (View)mInfoView); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:930: 错误: 找不到符号 mButtonsView = getActivity().getLayoutInflater().inflate(R.layout.buttons,null); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:971: 错误: 找不到符号 mAnnotTypeText.setText(getString(R.string.copy_text)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:972: 错误: 找不到符号 showInfo(getString(R.string.select_text)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:991: 错误: 找不到符号 showInfo(getString(R.string.select_text)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1000: 错误: 找不到符号 showInfo(getString(R.string.select_text)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1009: 错误: 找不到符号 showInfo(getString(R.string.select_text)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1018: 错误: 找不到符号 showInfo(getString(R.string.draw_annotation)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1047: 错误: 找不到符号 showInfo(success?getString(R.string.copied_to_clipboard):getString(R.string.no_text_selected)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1047: 错误: 找不到符号 showInfo(success?getString(R.string.copied_to_clipboard):getString(R.string.no_text_selected)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1055: 错误: 找不到符号 showInfo(getString(R.string.no_text_selected)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1063: 错误: 找不到符号 showInfo(getString(R.string.no_text_selected)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1071: 错误: 找不到符号 showInfo(getString(R.string.no_text_selected)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1079: 错误: 找不到符号 showInfo(getString(R.string.nothing_to_save)); ^ 符号: 方法 getString(int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1126: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1134: 错误: 找不到符号 super.onStart(); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1137: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1145: 错误: 找不到符号 super.onStop(); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1153: 错误: 找不到符号 startActivityForResult(intent, FILEPICK_REQUEST); ^ 符号: 方法 startActivityForResult(Intent,int) 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1206: 错误: 找不到符号 f.setArguments(args); ^ 符号: 方法 setArguments(Bundle) 位置: 类型为MuPDFFragment的变量 f ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1276: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1278: 错误: 找不到符号 super.onAttach(activity); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1288: 错误: 找不到符号 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); ^ 符号: 方法 getActivity() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1289: 错误: 找不到符号 builder.setTitle(getResources().getString(R.string.noSignOnPdfTitle)); ^ 符号: 方法 getResources() 位置: 类 MuPDFFragment ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1308: 错误: 方法不会覆盖或实现超类型的方法 @Override ^ ...\mupdf\src\main\java\com\artifex\mupdfdemo\MuPDFFragment.java:1310: 错误: 找不到符号 super.onConfigurationChanged(newConfig); ^ 符号: 变量 super 位置: 类 MuPDFFragment ...
问题原因
  • 编译错误主要是因为 Android Support Library 已被废弃,而项目仍在使用android.support.v4包中的类,例如 Fragment、MotionEventCompat 等,当前项目已经迁移到了 AndroidX
处理策略
  • 将代码中使用 Android Support Library 的地方迁移到 AndroidX
  1. 修改import android.support.v4.app.Fragment
// 原来是这样的importandroid.support.v4.app.Fragment
// 修改成这样importandroidx.fragment.app.Fragment
  1. 修改import android.support.v4.view.MotionEventCompat;
// 原来是这样的importandroid.support.v4.view.MotionEventCompat;
// 修改成这样// 直接删除或注释// import android.support.v4.view.MotionEventCompat;
  1. 修改使用 MotionEventCompat 的地方
// 原来是这样的mLastTouchX=MotionEventCompat.getX(event,ident);mLastTouchY=MotionEventCompat.getY(event,ident);
// 修改成这样mLastTouchX=event.getX(ident);mLastTouchY=event.getY(ident);
// 原来是这样的floatupX=MotionEventCompat.getX(event,ident);floatupY=MotionEventCompat.getY(event,ident);
// 修改成这样floatupX=event.getX(ident);floatupY=event.getY(ident);
http://www.jsqmd.com/news/1202796/

相关文章:

  • 出轨修复咨询哪家专业:谋仕心理资深深耕 - 云溪自乐
  • 大数据-Hadoop-统一操作界面:HUE(Hadoop User Experience)【一站式Web平台,整合HDFS、Hive、YARN等核心组件操作】
  • 2026 年现阶段繁昌值得关注的车间隔离实力厂家全面解析与选购指南,不隔离的代价:你的工厂正在“自杀” - 企业推荐管【认证】
  • JAMstack CMS vs WordPress:现代无服务器CMS如何重塑内容管理体验
  • gvt常见问题解决:10个典型使用场景与解决方案
  • 2026年广饶股权变更代办避坑指南:企业转让、涉税优化、风险防控全攻略 - 资讯在线
  • Operator 的台账:概念、设计与实践
  • C++代码触发运行时违规的概率竟是人类的两倍
  • 2026服装店线上拿货能不能退换?看懂售后规则、验货留证与责任边界 - Chencen
  • 基于QT与ffmpeg的RK3576多路视频硬解码方案
  • 游戏全自动搬砖:稳定副业与全职的长期收益方案
  • 2026.7.16:2026年7月最新coze docker compose安装教程
  • 婚姻冷暴力咨询哪家靠谱:谋仕心理真实可信 - 晚香时候
  • WebAssembly AI 插件联邦:不同来源的插件如何在同一个页面协同工作的安全方案
  • 从零开始玩转iO-808:Web版TR-808鼓机快速上手指南
  • Java新手避坑指南:从环境搭建到项目实战的完整学习路线
  • 整装怎么选不踩雷?2026西安省心家装品牌测评 - 速递信息
  • 【数理推导】从黎卡提方程到LQR控制器设计
  • 深圳宝珀回收价格查询和各大平台实测排行(2026年7月最新数据) - 天价名表回收平台
  • 2026 昆明奢侈品回收隐形扣费全实测|拆解行业各类收费套路,透明实报实收门店完整体验 - 微城市网络
  • iOS-UDID-Safari PHP版详细教程:从零开始搭建UDID获取服务器
  • geo优化哪家性价比高?看完五千二到八万六的报价差距,我把标准重新想了一遍
  • Android 科大讯飞语音识别进阶:SDK深度配置与个性化热词优化实战
  • 2026 齐齐哈尔空调维保实测对比:空调维修 / 移机 / 清洗 / 加氟怎么选靠谱商家,东诚空调维修真实体验 - 米諾
  • OpenWireless固件构建教程:从源代码编译到刷机完整流程
  • 2026 年当下,拉萨知名的膜结构工程品牌哪家权威,颠覆传统:膜结构如何重塑建筑未来? - 企业官方推荐【认证】
  • Agent 全栈开发面试问答
  • 体系协同赋能履约 千眼智推打造地产家居数字化高标准服务保障模式 - 速递信息
  • 2026年7月最新南京天梭官方售后热线及客户服务网点地址 - 天梭服务中心
  • 广州劳力士回收价格查询及靠谱平台实测排行(2026年7月最新) - 嘉价奢侈品回收平台