下面的代码使用Guice 2.0生成错误.有了Guice 1.0,一切都很好.JDK是Java 6更新15.
public class App {
public static void main(String[] args) {
Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
// just testing
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:
Exception in thread "main" java.lang.NoClassDefFoundError: [Lorg/aopalliance/intercept/MethodInterceptor;
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:78)
at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:70)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:232)
at com.google.inject.spi.Elements.getElements(Elements.java:101)
at com.google.inject.InjectorShell$Builder.build(InjectorShell.java:135)
at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:102)
at com.google.inject.Guice.createInjector(Guice.java:92)
at com.google.inject.Guice.createInjector(Guice.java:69)
at com.google.inject.Guice.createInjector(Guice.java:59)
at App.main(App.java:6)
Caused by: java.lang.ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我使用MessageDigest.getInstance("SHA-1")获取SHA1,它可以在Android 2.3中成功运行,但它无法在Android 4.0中运行,它将显示以下异常:
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.security.MessageDigest
at com.screenshare.email.Utility.getConsistentDeviceId(Utility.java:597)
at com.screenshare.exchange.SyncManager.getDeviceIdInternal(SyncManager.java:1079)
at com.screenshare.exchange.SyncManager.getDeviceId(SyncManager.java:1045)
at com.screenshare.exchange.SyncManager.onCreate(SyncManager.java:1813)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2253)
at android.app.ActivityThread.access$1600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
谁可以解释这个案子?
我按照IntelliJ安装教程中的描述设置了我的项目,但是我无法启动桌面应用程序.Android应用程序在模拟器和我的S3上启动都很好,但桌面主要无法找到我的类..
日志:
Exception in thread "main" java.lang.ClassNotFoundException: com.xxx.xxx.xxx.DesktopStarter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Run Code Online (Sandbox Code Playgroud)
我正在运行Mac OSX 10.7.5,Apple的Java JDK 1.6.0_43和IntelliJ 12.0.4.我觉得这很简单,我似乎无法找到问题.(不要嘲笑我的班级名字,这是我4岁的女儿); D
当我使用外部tomcat时,一切都很好.但我需要在内部eclipse tomcat服务器上部署我的项目,以便能够使用DCEVM类热交换.当我尝试从eclipse中启动tomcat服务器时,它说它无法在我的spring安全配置文件中找到我提到的一个服务类作为bean.我还尝试将项目添加到tomcat类路径,但它没有解决我的问题.
UPDATE
我发现问题是因为当我将我的web项目部署到eclipse tomcat服务器时,没有.class被复制到:
C:\Users\Meysam\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\villapweb\WEB-INF\classes
Run Code Online (Sandbox Code Playgroud)
实际上,这个文件夹包含我的src/java/main包结构,但没有复制.class.
lib文件夹虽然很好(例如maven和其他东西的所有依赖项都在它应该的路径中复制)
我认为m2e-wtp插件可能有问题.我不知道是什么!
我正在使用eclipse 4.3 BTW.
解决了
我按照以下步骤解决了这个问题:
而已.tomcat现在将所有.class文件复制到目标服务器,并且在tomcat启动时看不到ClassNotFound异常.
这个例外报告每周10次,我试图找到解决方案但失败了.我对这种异常感到有些沮丧,并搜索了所有相关帖子.(PS我注意到全名(android:name ="com.example.AcraApplication")抛出的异常多于short(android:name =".AcraApplication").)
public class AcraApplication extends Application {
public void onCreate() {
ACRA.init(this);
super.onCreate();
}
<application
android:name=".AcraApplication"
android:icon="@drawable/app_icon"
android:label="@string/app_name" >
Run Code Online (Sandbox Code Playgroud)
logcat的:
java.lang.RuntimeException: Unable to instantiate application com.example.AcraApplication: java.lang.ClassNotFoundException: Didn't find class "com.example.AcraApplication" on path: DexPathList[[zip file "/mnt/asec/com.example-2/pkg.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4554)
at android.app.ActivityThread.access$1600(ActivityThread.java:161)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1325)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.AcraApplication" on path: DexPathList[[zip file "/mnt/asec/com.example-2/pkg.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67) …Run Code Online (Sandbox Code Playgroud) 因此,我使用Smack运行我的聊天机器人来进行传说联盟,但是我甚至无法让机器人显示,因为缺少类似错误,我似乎无法弄明白.下面的代码和错误,感谢您的帮助,-Nick
另外:是的,这段代码来自一个例子,因为当我自己尝试时,我仍然遇到了同样的错误.
package com.nickparks.bot;
import java.util.*;
import java.io.*;
import org.jivesoftware.smack.*;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
public class JabberSmackAPI implements MessageListener{
XMPPConnection connection;
public void login(String userName, String password) throws XMPPException
{
ConnectionConfiguration config = new ConnectionConfiguration("chat.na1.lol.riotgames.com",5223);
connection = new XMPPTCPConnection(config);
try {
connection.connect();
connection.login(userName, password, "xiff");
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void displayBuddyList()
{
Roster roster = connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
System.out.println("\n\n" + entries.size() + " buddy(ies):");
for(RosterEntry r:entries)
{ …Run Code Online (Sandbox Code Playgroud) 我在我的代码中使用了AppBarLayout和NestedScrollview.但是我收到了一个错误.代码编译成功但与stacktrace崩溃
05-02 17:10:17.255 31335 31335 E AndroidRuntime: FATAL EXCEPTION: main
05-02 17:10:17.255 31335 31335 E AndroidRuntime: Process: com.android.settings, PID: 31335
05-02 17:10:17.255 31335 31335 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{XXXXXXXXXXXXXXXXXXX}: android.view.InflateException: Binary XML file line #14: Binary XML file line #14: Error inflating class android.support.design.widget.AppBarLayout
05-02 17:10:17.255 31335 31335 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423)
05-02 17:10:17.255 31335 31335 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
05-02 17:10:17.255 31335 31335 E AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:153)
05-02 17:10:17.255 31335 31335 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
05-02 …Run Code Online (Sandbox Code Playgroud) 大家好我的应用程序一切正常,直到昨天,我昨天更新了我的SDK,它开始给出错误,它首先给出了一个错误
没有找到值v24的资源....
像这样的一些东西我搜索并通过更改build.gradle中的以下行来解决它
compileSdkVersion 25
buildToolsVersion '25.0.2'
Run Code Online (Sandbox Code Playgroud)
现在,错误消失了,它在更高的Android版本7.1.1中运行完全正常 但是当我在较低版本的android中运行它给出以下错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.wowio.ebookreader, PID: 15469
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.wowio.ebookreader/com.eminosoft.ebookread.activity.SplashScreenActivity}: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
at android.app.ActivityThread.access$800(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5433)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, …Run Code Online (Sandbox Code Playgroud) 如何从具有相同结构的不同jar中解析我的类
注意:虽然有问题的罐子中含有硒这个词,但这里的问题与硒没有直接关系
直到几天前,PhantomJSDriver一起发布了selenium-server-standalone-v.v.v.jar.所以我的班级工作正常:
import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
public class A_PhantomJS
{
public static void main(String[] args)
{
File path=new File("C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver= new PhantomJSDriver();
driver.manage().window().maximize();
driver.get("https://www.google.co.in");
}
}
Run Code Online (Sandbox Code Playgroud)
现在selenium-server-standalone-v.v.v.jar不会将jar 包装为PhantomJSDriver依赖项.
所以我已经下载了jar phantomjsdriver-1.1.0.jar并将其作为外部jar添加到我的项目中.
您可以看到它的结构phantomjsdriver-1.1.0.jar与捆绑时的结构类似selenium-server-standalone-v.v.v.jar
现在,虽然我的班级通过以下方式解决:
import org.openqa.selenium.phantomjs.PhantomJSDriver;
Run Code Online (Sandbox Code Playgroud)
但我面临java.lang.NoClassDefFoundError如下运行时异常:
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/browserlaunchers/Proxies
at org.openqa.selenium.phantomjs.PhantomJSDriverService.createDefaultService(PhantomJSDriverService.java:178)
at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:99)
at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:89)
at demo.A_PhantomJS.main(A_PhantomJS.java:15)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.browserlaunchers.Proxies
at java.net.URLClassLoader.findClass(Unknown …Run Code Online (Sandbox Code Playgroud) 在Java应用程序中,我试图通过在类上使用newInstance()方法来创建类Class1的实例.Class1属于我的项目,但它也需要来自另一个项目的Class2,它位于我已添加到项目中的外部jar中以及Eclipse中的构建路径中.Eclipse似乎找到了Class2,因为它编译项目时没有任何问题,但是当我尝试获取Class1的实例时,它会抛出一个关于Class2 的ClassNotFoundException.
这就是Class1的样子:
import other.package.Class2;
public class Class1 implements Class1Interface{
//there's no explicit constructor
@Override
public void method1(String param){
System.out.println("Loading.....");
}
@Override
public void notifyChanges(String param) throws Exception{
Class2 class2 = Class2.getInstance(); //here it's used the Class2 from another jar
...
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我尝试获取它的实例的方法:
String myParam = "blabla";
Class1Interface interf = "my.package.Class1";
try {
interf = (Class1Interface) Class.forName(interfazws).newInstance();
interf.method1(myParam);
} catch (InstantiationException e) {
handle(e);
} catch (IllegalAccessException e) { …Run Code Online (Sandbox Code Playgroud)