问题描述

Android P源码环境下AOSP源码以及编译完成,但是引入第三方jar包之后,编译报“ Invalid value for MonthOfYear (valid values 1 - 12): 0 ” 错误。

异常信息.jpg

问题原因

第三方提供的jar包编译环境与系统不一致。详见1.统一编译环境

解决办法

确认如下环境是否一致:

  • java环境:java -version
  • javac环境:javac -version

环境配置

1
2
3
4
5
6
7
8
9
10
11
# 下载对应版本
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

# 版本之间切换
sudo update-alternatives --config java
sudo update-alternatives --config javac

# 确定ubuntu版本信息
cat /proc/version

如果环境一致了还是不好使,那么必须将模块代码放入源码编译!!!!

开始项目代码是用Android Studio开发的,打jar包也是用AS来构建的,随便怎么配置,随便怎么对环境,打出来的jar包在Android Q源码里都会报”DateTimeException”。其他版本的源码不报这个异常。

所以真正解决这个问题的办法只有将代码移入到Android Q源码中,写一个Android.mk脚本来编译就可以了。

编译成功.png

参考文档

1.统一编译环境