博客
关于我
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不同官方版本对比
    查看>>
    MySQL与Informix数据库中的同义表创建:深入解析与比较
    查看>>
    mysql与mem_细说 MySQL 之 MEM_ROOT
    查看>>
    MySQL与Oracle的数据迁移注意事项,另附转换工具链接
    查看>>
    mysql丢失更新问题
    查看>>
    MySQL两千万数据优化&迁移
    查看>>
    MySql中 delimiter 详解
    查看>>
    MYSQL中 find_in_set() 函数用法详解
    查看>>
    MySQL中auto_increment有什么作用?(IT枫斗者)
    查看>>
    MySQL中B+Tree索引原理
    查看>>
    mysql中cast() 和convert()的用法讲解
    查看>>
    mysql中datetime与timestamp类型有什么区别
    查看>>
    MySQL中DQL语言的执行顺序
    查看>>
    mysql中floor函数的作用是什么?
    查看>>
    MySQL中group by 与 order by 一起使用排序问题
    查看>>
    mysql中having的用法
    查看>>
    MySQL中interactive_timeout和wait_timeout的区别
    查看>>
    mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中json_extract的使用方法
    查看>>