- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是完整的警告:
JNI WARNING: instance fieldID 0x571819bc not valid for class Ljava/lang/Class; in Lcom/brokenteapot/lwtemplate/JNI;.onCreate:(Landroid/content/res/AssetManager;)V (GetIntField)
回溯:
#00 pc 00045dd0 /system/lib/libdvm.so (dvmAbort+75)
#01 pc 00039819 /system/lib/libdvm.so
#02 pc 0003e96b /system/lib/libdvm.so
#03 pc 000089b9 /system/lib/libandroid.so (AAssetManager_fromJava+88)
#04 pc 00002f54 /data/data/com.brokenteapot.lwtemplate/lib/libLiveWallpaperTemplate.so (Java_com_brokenteapot_lwtemplate_JNI_onCreate+128)
这是导致它的代码:
public final class LiveWallpaperService extends WallpaperService
{
static AssetManager assetManager;
@Override
public void onCreate()
{
assetManager = getAssets();
JNI.onCreate(assetManager);
}
}
void Java_com_brokenteapot_lwtemplate_JNI_onCreate(JNIEnv* env, jobject assetManager)
{
AAssetManager* pAssetManager = AAssetManager_fromJava(env, assetManager);
}
我真的不知道这些警告是什么意思,也不知道为什么会崩溃。我几乎完全按照 NDK 示例中的示例进行操作。是因为它是一项服务,所以有所不同吗?
最佳答案
呃,我想通了,JNI 函数中的方法签名是错误的:
void Java_com_brokenteapot_lwtemplate_JNI_onCreate(JNIEnv* env, jobject assetManager)
应该是
void Java_com_brokenteapot_lwtemplate_JNI_onCreate(JNIEnv* env, void* reserved, jobject assetManager)
我真的不明白为什么有些 JNI 函数需要 void* 而有些不需要...
关于android - 调用 AAssetManager_fromJava 时崩溃 : "JNI WARNING: instance fieldID 0x571819bc not valid",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184772/
我试图在多台主机上运行这个脚本,但它们没有安装 bc。 我读到你可以使用类似“awk 'BEGIN {print...}' 的东西,但我无法让它工作。 #!/bin/bash nproc=$(npro
我试图找到一个正则表达式来匹配具有字符串“question”但不具有或不包含字符串“ion”的所有字符组合。 例子: questionxxxx ------>匹配 xxxquestion-------
我可以使用 Python 运行 bc,代码如下: subprocess.Popen("bc", stdout=subprocess.PIPE).communicate()[0] 但是,这只会启动 bc
我们使用API在Dynamic 365 BC中处理采购数据,以更新、接收和开具采购订单行。(Dynamic 365插件在不使用文件的情况下解析附注附件XML)我们现在希望将发票文档作为附件上传到采购发
我正在尝试使用 bc 将我的数字计算缩放到一位小数(所有适用的四舍五入) linux下的命令。这是我的测试表达式: echo "scale 1; 90 - 70.333" | bc 但是,我最终得到了
jack 10 10号 A 20 卢卡20 A Bc U 20 我想得到这些数字的总和:10 + 10 + 20 + 20 + 20 = 80 但是我不能使用cat input|cut -d " "
我正在用 C# 实现一些东西,对此我有一个单独的规范,并且对我需要做什么有相当清楚的了解,但同时作为引用,我有一个 Java 实现,并且希望遵循以下中的 Java 实现我尽可能接近这个案例。 该代码涉
我正在尝试将 32 个字符长的十六进制字符串(例如:A41EB86E184207262C12F66E7C480577)转换为二进制。我正在使用: echo "ibase=16; obase=2; $l
我正在尝试编写一个 bash 脚本,我需要做一些 float 学运算。基本上我想做这样的事情: NUM=$(echo "scale=25;$1/10" | bc) if [ $? -ne 0 ] th
这是我的 netstat 命令的输出。我想计算第一个字段的总数,例如 7+8+1+1+1+1+3+1+2..so on... 我如何使用 bc 或任何其他方法命令来计算它们的总数? [root@exa
我希望以 6 十六进制值格式返回以下十六进制... [admin@X~]$ echo "obase=16; 16777215" | bc FFFFFF [admin@X~]$ echo "obase=
您好,我有一个脚本,用于计算从服务器返回的一组值的标准偏差。 我可以轻松检索命令并使用命令构建有效的字符串。 bc <<< "scale=10; sqrt((0+((782636-782030)^2)
我不明白为什么 bc 工具有时会忽略比例选项。 这是一个例子: > echo 'scale=2; 2.777 - 1.4744' | bc 1.3026 预期结果是: 1.30 附加信息: > bas
我正在尝试使用“bc”在 Bash 脚本中实现以下计算,但“scale”选项产生的结果不正确,末尾有 2 个额外的零,这意味着我必须手动修剪它(丑陋). 计算: ((2592000-239)÷2592
我正在使用 bc从 bash 脚本来做一些快速而肮脏的 BigInteger 数学运算,但是,当我提高比例时,它开始在我身上分割线: pax> echo 'scale=200 ; 1 / 4' | b
我想计算一个数字的对数(以 10 为底)。如何使用 bc 执行此操作? 最佳答案 使用 -l 选项调用 bc(以启用数学库),如下所示: $ echo 'l(100)/l(10)' | bc -l 2
我在 GitHub 上发现了术语“BC Break”——它是什么意思? 最佳答案 “BC 中断”通常意味着 backward compatibility笼统地说,但正如 David Schwartz
对于大型输出,unix 中的 bc 实用程序以这种格式提供输出: $ bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006
我想显示例如ac年份为1999年12月31日,BC年份为2000年12月31日(-)。我花了一些时间研究 joda api,例如像这样: new DateTimeFormatterBuilder().
#! /bin/sh a1=260 a2=9150 echo "$a1 * 100 / $a2" | bc 输出是 2 它应该在哪里 2.8415 为什么我在使用 bc 时精度会丢失? 最佳答案 试试
我是一名优秀的程序员,十分优秀!