应用程序包中 class 的 NoClassDefFoundError

NoClassDefFoundError for class within app package

下面是我的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

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

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