java - 应用程序包中类的 NoClassDefFoundError

标签 java android noclassdeffounderror

以下是我的 Activity :

com.domain.app.SampleActivity.java

public class SampleActivity extends Activity {

  @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.sample_layout);

        DataProviderClass dataProvider = new DataProviderClass();
    }
}

com.domain.app.anotherFolder.DataProviderClass.java

public class DataProviderClass {
  private DataProviderClassHelper helper = new DataProviderClassHelper();
}

com.domain.app.anotherFolder.DataProviderClassHelper.java

public class DataProviderClassHelper implements ExternalLibInterface {
  public DataProviderClassHelper() {
    }
}

以下是日志:

I/art (22555): Rejecting re-init on previously-failed class java.lang.Class I/art (22555): Rejecting re-init on previously-failed class java.lang.Class I/art (22555): Rejecting re-init on previously-failed class java.lang.Class I/art (22555): Rejecting re-init on previously-failed class java.lang.Class I/art (22555): Rejecting re-init on previously-failed class java.lang.Class E/AndroidRuntime(22555): Process: com.domain.app, PID: 22555 E/AndroidRuntime(22555): java.lang.NoClassDefFoundError: com.domain.app.anotherFolder.DataProviderClassHelper.java E/AndroidRuntime(22555): at com.domain.app.anotherFolder.DataProviderClass.java.(DataProviderClass.java:77) E/AndroidRuntime(22555): at com.domain.app.SampleActivity..onCreate(SampleActivity.java:64) W/ActivityManager( 1103): Force finishing activity 1 com.domain.app/.SampleActivity

这对我来说没有意义,一个类已初始化,但同一文件夹中的另一个类给我一个错误。
在其他类似的问题中,人们在他们试图导入的外部库中遇到了这个错误,这对我没有真正的帮助。

最佳答案

在我的 DataProviderClassHelper 中,我实际上实现了在外部库的 stub jar 中提供的 ExternalLibInterface 接口(interface)。
因为它是提供的,代码会成功编译,但实际的东西在运行时对我不可用。为了能够访问系统上的实际内容,我必须在我的 AndroidManifest.xml 中添加一些特定于库的组件。因此,该解决方案可能无法完全帮助所有人,但可以帮助人们确定问题的原因。 在我的例子中,这是由于 ExternalLibInterface 在运行时不可用。

关于java - 应用程序包中类的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058360/

相关文章:

android - 以任何方式将 DroidCam 视频流式传输到 OpenCV Python

java.lang.NoClassDefFoundError : Could not initialize class javax. swing.UIManager

java.lang.ClassNotFoundException : com. sun.mail.util.MessageRemovedIOException

Java - dist 和 deploy 文件夹之间的区别

java - 在应用程序启动时停止已启动的服务

java - 从 eclipse viewpart 获取内容

java - 为什么我会收到 dbunit noclassdeffounderror 数据库连接?

java - NoSuchBeanDefinitionException : No qualifying bean of type 'org.springframework.boot.web.reactive.error.ErrorAttributes' available:

android - 如何在android中使用viewGroup

Android:默认语言环境语言 "hd"