以下是我的活动:
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):拒绝对先前失败的类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):位于com.domain.app.anotherFolder.DataProviderClass.java。(DataProviderClass.java:77) E / AndroidRuntime(22555):位于com.domain.app.SampleActivity..onCreate(SampleActivity.java:64) W / ActivityManager(1103):强制完成活动1 com.domain.app/.SampleActivity
对我来说,一个类被初始化没有意义,但是同一文件夹中的另一个类却给我一个错误。
在其他类似的问题中,人们在尝试导入的外部库中遇到此错误,但这并没有真正帮助我。
答案 0 :(得分:2)
在我的DataProviderClassHelper
中,我实际上是在实现一个外部库的存根jar中提供的ExternalLibInterface
接口。
因为它是provided
,所以代码可以成功编译但是实际的东西在运行时对我不可用。为了能够访问系统上的实际内容,我必须在AndroidManifest.xml
中添加一些库特定的组件。因此,该解决方案可能无法完全帮助所有人,但可以帮助人们确定问题的原因。
在我的情况下,这是由于ExternalLibInterface
在运行时不可用。