- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试创建一个可以验证人脸的 Android 应用程序但是当我尝试在我的模拟器(使用 Eclipse)上运行我的应用程序时,我的 logcat 中有这个结果:
06-16 14:51:24.326: E/AndroidRuntime(4305): FATAL EXCEPTION: main
06-16 14:51:24.326: E/AndroidRuntime(4305): Process: com.neurotec.samples.faceverification, PID: 4305
06-16 14:51:24.326: E/AndroidRuntime(4305): java.lang.ExceptionInInitializerError
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.view.NGui.<clinit>(NGui.java:56)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.view.NViewBase.<clinit>(NViewBase.java:30)
06-16 14:51:24.326: E/AndroidRuntime(4305): at java.lang.reflect.Constructor.constructNative(Native Method)
06-16 14:51:24.326: E/AndroidRuntime(4305): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.view.LayoutInflater.createView(LayoutInflater.java:594)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:341)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.Activity.setContentView(Activity.java:1975)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.samples.faceverification.FaceVerificationApplication.onCreate(FaceVerificationApplication.java:46)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.Activity.performCreate(Activity.java:5370)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2422)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.ActivityThread.access$800(ActivityThread.java:151)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.os.Handler.dispatchMessage(Handler.java:110)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.os.Looper.loop(Looper.java:193)
06-16 14:51:24.326: E/AndroidRuntime(4305): at android.app.ActivityThread.main(ActivityThread.java:5330)
06-16 14:51:24.326: E/AndroidRuntime(4305): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 14:51:24.326: E/AndroidRuntime(4305): at java.lang.reflect.Method.invoke(Method.java:515)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
06-16 14:51:24.326: E/AndroidRuntime(4305): at dalvik.system.NativeStart.main(Native Method)
06-16 14:51:24.326: E/AndroidRuntime(4305): Caused by: java.lang.ExceptionInInitializerError
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.media.NMedia.<clinit>(NMedia.java:49)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.view.NGui.<clinit>(NGui.java:47)
06-16 14:51:24.326: E/AndroidRuntime(4305): ... 26 more
06-16 14:51:24.326: E/AndroidRuntime(4305): Caused by: java.lang.ExceptionInInitializerError
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.lang.NCore.<clinit>(NCore.java:140)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.lang.NTypes.<clinit>(NTypes.java:171)
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.media.NMedia.<clinit>(NMedia.java:46)
06-16 14:51:24.326: E/AndroidRuntime(4305): ... 27 more
06-16 14:51:24.326: E/AndroidRuntime(4305): Caused by: java.lang.NoClassDefFoundError: com.sun.jna.Platform
06-16 14:51:24.326: E/AndroidRuntime(4305): at com.neurotec.lang.NCore.<clinit>(NCore.java:123)
06-16 14:51:24.326: E/AndroidRuntime(4305): ... 29 more
FaceVerificationApplication.java的代码如下:
public class FaceVerificationApplication extends BaseActivity implements
EnrollmentDialogListener, UserSelectionListener {
// ===========================================================
// Private fields
// ===========================================================
private static final String EXTRA_REQUEST_CODE = "request_code";
private static final int VERIFICATION_REQUEST_CODE = 1;
private static final int TIMEOUT = 60000;
private boolean mAppClosing;
private NFaceVerificationView mFaceView;
// ===========================================================
// Protected methods
// ===========================================================
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nlvdemo);
// on application start you must set NCore context
NCore.setContext(this);
new Thread(new Runnable() {
@Override
public void run() {
try {
showProgress(R.string.msg_initialising);
// get NFV for the first time
final NFaceVerification nfv = NFV.getInstance();
// load settings
SettingsFragment.loadSettings();
// button implementations
Button mEnrollButton = (Button) findViewById(R.id.button_enroll);
mEnrollButton
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EnrollmentDialogFragment enrollDialog = new EnrollmentDialogFragment();
enrollDialog.show(getFragmentManager(),
"enrollment");
}
});
Button mCancelButton = (Button) findViewById(R.id.button_cancel);
mCancelButton
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showProgress(R.string.msg_cancelling);
nfv.cancel();
hideProgress();
}
});
Button mVerifyButton = (Button) findViewById(R.id.button_verify);
mVerifyButton
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putInt(EXTRA_REQUEST_CODE,
VERIFICATION_REQUEST_CODE);
UserListFragment userList = (UserListFragment) UserListFragment
.newInstance(nfv.getUsers(), true,
bundle);
userList.show(getFragmentManager(),
"verification");
}
});
// set frontal camera
String[] names = nfv.getAvailableCameraNames();
for (String n : names) {
if (n.contains("Front")) {
nfv.setCamera(n);
break;
}
}
mFaceView = (NFaceVerificationView) findViewById(R.id.nFaceView);
nfv.addCapturePreviewListener(new NFaceVerificationCapturePreviewListener() {
@Override
public void capturePreview(
NFaceVerificationCapturePreviewEvent arg0) {
mFaceView.setEvent(arg0);
}
});
hideProgress();
} catch (Exception ex) {
hideProgress();
showError(ex);
}
}
}).start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.nlvdemo, menu);
return true;
}
@Override
public void onBackPressed() {
super.onBackPressed();
mAppClosing = true;
}
@Override
public void onEnrollmentIDProvided(final String id) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// cancel in there are any other operations in progress
NFV.getInstance().cancel();
NFaceVerificationStatus status = NFV.getInstance().enroll(
id, TIMEOUT, null);
showInfo(String.format(
getString(R.string.msg_operation_status),
status.toString()));
} catch (Throwable e) {
showError(e);
}
}
}).start();
};
@Override
public void onUserSelected(final NFaceVerificationUser user, Bundle bundle) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// cancel in there are any other operations in progress
NFV.getInstance().cancel();
NFaceVerificationStatus status = NFV.getInstance().verify(
user.getId(), TIMEOUT);
showInfo(String.format(
getString(R.string.msg_operation_status),
status.toString()));
} catch (Throwable e) {
showError(e);
}
}
}).start();
};
@Override
protected void onStop() {
if (mAppClosing) {
NFV.getInstance().cancel();
NFV.dispose();
}
super.onStop();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_clear_db) {
new Thread(new Runnable() {
@Override
public void run() {
// cancel if there are any other operations in progress
NFV.getInstance().cancel();
NFV.getInstance().getUsers().clear();
}
}).start();
return true;
} else if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
}
如何解决这个异常?任何建议都有很大帮助。
最佳答案
这里有答案,所以你现在知道如何解决它了。但这是给别人的。 Java 有一个很棒的异常消息处理,您几乎可以在其中找到修复它所需的所有内容。这只是我的意见和建议:每次查看 CAUSED BY: 部分。
当您有异常时,请查看最后由消息引起的。例如这里是:Caused by: java.lang.NoClassDefFoundError: com.sun.jna.Platform。 Java 有很多错误类。这是 Object->Throwable->Error->LinkageError 的错误。 Error => Problem during runtime, No class Def Found Error 是类加载器的典型问题。解释错误所需的所有内容都在 Java 文档中。
顺便说一下,根据您在评论中的问题,这里是添加外部库的解决方案。
如何在 Eclipse 中添加库到项目:在此处下载其他人描述的 jar (jna.jar) 并将其添加到 lib 文件夹,然后您必须将其添加到构建路径(然后类加载器将能够找到它,它将解决您的问题问题)。如果您使用的是 Eclipse,您可以通过 Eclipse 将它们直接导入到您的 lib 文件夹(右键单击项目文件夹,选择构建路径,库选项卡并添加 jar)或者直接将 jar 复制到 lib 文件夹,然后右键单击并构建路径 -> 添加到构建路径。
关于Android 中的 java.lang.ExceptionInInitializerError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804174/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!