s5p4418-android5.1.1编译出错问题1

环境:ubuntu15.1wily

OPENJDK-7

android5.1.1

出错信息:

Traceback (most recent call last):

  File "../../base/android/jni_generator/jni_generator.py", line 1527, in <module>
    sys.exit(main(sys.argv))
  File "../../base/android/jni_generator/jni_generator.py", line 1518, in main
    GenerateJNIHeader(input_file, output_file, options)
  File "../../base/android/jni_generator/jni_generator.py", line 1401, in GenerateJNIHeader
    jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, options)
  File "../../base/android/jni_generator/jni_generator.py", line 652, in CreateFromClass
    jni_from_javap = JNIFromJavaP(stdout.split('\n'), options)
  File "../../base/android/jni_generator/jni_generator.py", line 577, in __init__
    self.fully_qualified_class = self.fully_qualified_class.replace('.', '/')
AttributeError: 'JNIFromJavaP' object has no attribute 'fully_qualified_class'
Traceback (most recent call last):
  File "../../base/android/jni_generator/jni_generator.py", line 1527, in <module>
    sys.exit(main(sys.argv))
  File "../../base/android/jni_generator/jni_generator.py", line 1518, in main
    GenerateJNIHeader(input_file, output_file, options)
  File "../../base/android/jni_generator/jni_generator.py", line 1401, in GenerateJNIHeader
    jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, options)
  File "../../base/android/jni_generator/jni_generator.py", line 652, in CreateFromClass
    jni_from_javap = JNIFromJavaP(stdout.split('\n'), options)
  File "../../base/android/jni_generator/jni_generator.py", line 577, in __init__
    self.fully_qualified_class = self.fully_qualified_class.replace('.', '/')
AttributeError: 'JNIFromJavaP' object has no attribute 'fully_qualified_class'
external/chromium_org/android_webview/native/cancellation_signal_android_jar_jni_headers.target.linux-arm.mk:24: recipe for target 'out/target/product/s5p4418_drone/obj/GYP/shared_intermediates/android_webview/jni/CancellationSignal_jni.h' failed
make: *** [out/target/product/s5p4418_drone/obj/GYP/shared_intermediates/android_webview/jni/CancellationSignal_jni.h] Error 1
make: *** Waiting for unfinished jobs....
external/chromium_org/ui/gl/surface_jni_headers.target.linux-arm.mk:24: recipe for target 'out/target/product/s5p4418_drone/obj/GYP/shared_intermediates/ui/gl/jni/Surface_jni.h' failed

make: *** [out/target/product/s5p4418_drone/obj/GYP/shared_intermediates/ui/gl/jni/Surface_jni.h] Error 1


解决方案:JAVA SDK安装设置出错。重新安装jdk1.7.

apt-get update 
apt-get install openjdk-7-jdk 
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-openjdk-amd64/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javac" 1
update-alternatives --set java /usr/lib/jvm/java-7-openjdk-amd64/bin/java
update-alternatives --set javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
//检查设置版本
update-alternatives --config java
update-alternatives --config javac


使用env查看环境变量,删除关于$JAVA_HOME,$CLASSPATH变量。

重新编译

make -j4

OK !

参考:http://blog.csdn.net/yuxiangyunei/article/details/45365235

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是在 s5p4418 上设置 1 秒定时器的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #define TIMER_BASE_ADDR 0xC0010000 #define TIMER_LOAD_OFFSET 0x00 #define TIMER_VALUE_OFFSET 0x04 #define TIMER_CONTROL_OFFSET 0x08 #define TIMER_INTERRUPT_OFFSET 0x0C #define TIMER_PRESCALER 0x01 #define TIMER_ENABLE 0x80 #define TIMER_PERIOD 0x00F42400 // 16,000,000 int main() { int fd; void *timer_base; unsigned int timer_load_val = TIMER_PERIOD / TIMER_PRESCALER; // 打开 /dev/mem 设备 fd = open("/dev/mem", O_RDWR | O_SYNC); if (fd < 0) { perror("open"); return -1; } // 映射定时器寄存器 timer_base = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, TIMER_BASE_ADDR); if (timer_base == MAP_FAILED) { perror("mmap"); close(fd); return -1; } // 设置定时器周期 *((unsigned int *)(timer_base + TIMER_LOAD_OFFSET)) = timer_load_val; // 设置定时器控制寄存器 *((unsigned int *)(timer_base + TIMER_CONTROL_OFFSET)) = TIMER_PRESCALER | TIMER_ENABLE; // 等待 1 秒 sleep(1); // 关闭定时器 *((unsigned int *)(timer_base + TIMER_CONTROL_OFFSET)) = 0; // 取消映射 munmap(timer_base, 0x1000); // 关闭 /dev/mem 设备 close(fd); return 0; } ``` 该代码假设您正在使用 s5p4418 的第一个定时器,并且使用的是 Linux 操作系统。其中,`TIMER_BASE_ADDR` 定义了定时器的基地址,`TIMER_LOAD_OFFSET`、`TIMER_VALUE_OFFSET`、`TIMER_CONTROL_OFFSET` 和 `TIMER_INTERRUPT_OFFSET` 分别定义了定时器的加载值、当前值、控制寄存器和中断寄存器的偏移量。`TIMER_PRESCALER` 定义了定时器的分频值,`TIMER_ENABLE` 定义了定时器的使能位,`TIMER_PERIOD` 定义了定时器的周期,即计数器值。在本例中,定时器的周期为 16,000,000,因为 s5p4418 的时钟频率为 16 MHz,所以定时器的周期为 1 秒。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值