博客
关于我
android源码环境下编译fourthling.cling库的依赖问题
阅读量:689 次
发布时间:2019-03-16

本文共 1269 字,大约阅读时间需要 4 分钟。

建立从源头开始的解决方案来处理fourthline.cling在Android上的静态库编译问题,可以分为以下步骤:

  • 了解依赖关系并准备knife :首先,确保在Android的源码环境中预制所有必要的JAR文件。编辑LOCAL_STATIC_JAVA_LIBRARIES,确保包含了 BUILD_STATIC_JAVA_LIBRARY 相关的 .mk 文件。例如,在你的项目根目录下找到相应的文件,进行适当的修改。

  • 处理javax依赖问题:Android环境不支持直接使用javax包,因此需要引入cdi-api-2.0的JAR包,这个包包含了如javax.decorator.Decorator等类。确保这个JAR已经添加在LOCAL_STATIC_JAVA_LIBRARIES中,并未被遗漏或权限错误阻止。

  • 修复编译错误:当你在编译fourthling.cling时遇到如“第四ling.cling (java:sdk) 不应链接到cdi-api (java:platform)”的错误,说明SDK接口不能够链接到平台级别的依赖。为了修复这个错误,在Android.mk文件中将 LOCAL_SDK_VERSION := current 替换为 LOCAL_PRIVATE_PLATFORM_APIS := true。这样编译器允许链接到这些私有接口。

  • 处理编译警告:当你看到如“can't find referenced class javax.el.ExpressionFactory”等警告时,首先确认这些警告是否影响程序的正常运行。如果它们不会导致程序崩溃或其他严重问题,可以通过创建proguard.flags文件来过滤这些警告:

    # 在项目根目录下创建proguard.flags-dontnote org.fourthline.cling.*-dontwarn org.eclipse.jetty.jmx.*-dontwarn javax.el.*

    然后在Android.mk文件中添加LOCAL_PROGUARD_FLAG_FILES := proguard.flags,这样ProGuard会忽略这些警告,继续编译。

  • 确保缺失的类不会影响运行:如果这些缺失的类确实会导致程序崩溃或功能缺失,需要额外引入相关的JAR包。例如,添加javax.el.jakarta或其他包含必要类的库,确保所有依赖都已满足。

  • 验证编译环境:在编译fourthline.cling之前,执行以下命令确保环境正确:

    source build/envsetup.sh

    这将设置必要的环境变量,确保后续步骤顺利执行。

  • 在编译时检查日志:编译完成后,仔细检查日志,确保没有遗漏的依赖错误或其他潜在问题。如果发现新的依赖问题,逐步解决,确保所有必要的库都已正确添加和配置。

  • 通过以上步骤,你应该能够解决fourthline.cling在Android编译中的静态库依赖问题。这些方法可以帮助你避开常见的编译错误,并通过合理的配置确保程序的稳定性。

    转载地址:http://bbeqz.baihongyu.com/

    你可能感兴趣的文章
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
    查看>>
    mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
    查看>>
    Multiple websites on single instance of IIS
    查看>>
    mysql CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>
    multiprocessing.pool.map 和带有两个参数的函数
    查看>>
    MYSQL CONCAT函数
    查看>>
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>