以下是我的活动: 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.another folder.data provider class.Java
public class DataProviderClass {
private DataProviderClassHelper helper = new DataProviderClassHelper();
}
com.domain.app.another folder.data provider class helper.Java
public class DataProviderClassHelper implements ExternalLibInterface {
public DataProviderClassHelper() {
}
}
以下是日志:
I / art(22555):拒绝重新初始化以前失败的类java.lang.Class I / art(22555):拒绝重新初始化以前失败的类java.lang.Class I / art(22555):拒绝重新初始化以前失败的类java.lang.Class I / art(22555):拒绝重新初始化以前失败的类java.lang.Class I / art(22555):拒绝重新初始化以前失败的类java.lang.Class E / AndroidRuntime(22555):进程: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):强制完成活动1 com.domain.app/.SampleActivity
我初始化一个类没有意义,但同一文件夹中的另一个类给我一个错误。 在其他类似的问题中,人们在他们试图导入的外部库中面临这个错误,这对我没有帮助。
在我的DataProviderClassHelper
中,我实际上实现了在外部库的存根罐中提供的ExternalLibInterface
接口。
由于它是provided
,代码将成功编译,但实际上在运行时我无法使用。为了能够访问系统上的实际内容,我必须在AndroidManifest.xml
中添加一些特定于库的组件。因此,解决方案可能并不能完全帮助每个人,但它可以帮助人们确定问题的原因。
在我的情况下,这是由于ExternalLibInterface
在运行时不可用。