我已经编写并导入了我自己的包含 OAuth 登录功能的库。它需要在自己的布局资源 authorize.xml 上调用 "setContentView(R.layout.authorize)",它在库的 res/layout< 中定义/em> 文件夹。如果我将库作为常规项目运行(使用测试 Activity ),一切正常。但是,如果我在另一个项目中使用该库,则会出现以下错误,表明找不到我的 authorize.xml 布局。
05-17 16:56:10.436: W/dalvikvm(212): VFY: unable to resolve static field 29 (twitter_authorize_webview) in Lcom/skworks/twitter/R$layout;
05-17 16:56:10.436: W/dalvikvm(212): VFY: rejecting opcode 0x60 at 0x0003
05-17 16:56:10.436: W/dalvikvm(212): VFY: rejected Lcom/skworks/twitter/AuthorizeActivity;.onCreate (Landroid/os/Bundle;)V
05-17 16:56:10.436: W/dalvikvm(212): Verifier rejected class Lcom/skworks/twitter/AuthorizeActivity;
05-17 16:56:10.436: W/dalvikvm(212): Class init failed in newInstance call (Lcom/skworks/twitter/AuthorizeActivity;)
这是我主要 Activity 中的代码
Intent i = new Intent(this, AuthorizeActivity.class);
i.putExtra("URL", mRequestToken.getAuthenticationURL());
this.startActivityForResult(i, TWITTER_AUTH);
显然这是在我的 AuthorizeActivity 类的 onCreate 中,在库中找到。
setContentView(R.layout.authorize);
我确定某些设置不正确,无法公开我的库中定义的资源。有什么想法吗?
最佳答案
您可能需要检查库的build设置。可能是它没有将布局文件打包到您的 jar/apk 中。也可能是使用库的项目没有将文件 bundle 到可交付的 apk 中。这就是我要开始寻找的地方。
关于Android 库使用自己的资源调用 setContentView,但失败并返回 "unable to resolve static field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10640350/