在这里开发我的第一个 Android 应用程序。我已经搜索并尝试了我能想到的一切,但没有运气......
作为我的应用程序的一部分,我正在尝试合并一个单独的文件选择器项目。我试图将选择器分开,以便它可以被许多 future 的项目共享。就其本身而言,它启动良好。问题是当我尝试从我的主应用程序启动它时,我得到一个 Resources.NotFoundException
。我遇到了 Class Not Found 的问题,我想我已经通过将选择器包含在 Java 构建路径中并包含在主应用程序的 Android list 中来解决这个问题。
主应用程序 list :
<application ...
<activity android:name=".MyMainApp" ...
<activity android:name=".MyOtherActivity" ...
<activity android:name="com.didjit.filechooser.FileChooser"/>
</application
文件选择器在主代码中是这样启动的:
Intent intent = new Intent(this, com.didjit.filechooser.FileChooser.class);
startActivityForResult(intent, REQ_CODE_CHOOSE_SOURCE);
在选择器方面,未找到的资源是 R.layout.main
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
browseToRoot();
findViewById(R.id.btnDone).setOnClickListener(this);
}
它抛出的错误是这样的:
: FATAL EXCEPTION: main
: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.didjit.MyMainApp/com.didjit.filechooser.FileChooser}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
...
12-27 18:07:00.296: E/AndroidRuntime(1961): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
我怀疑的一件事是 com.didjit.MyMainApp/com.didjit.filechooser.FileChooser
,就好像它将外部项目视为子组件一样。
另外,我担心我在解决这个问题时弄乱了项目配置。最初,没有找到选择器类。将它列在 Java Build Path/Projects
下似乎还不够;我还必须在 Java Build Path/Libraries
下包含类文件夹。如果我将选择器项目设为库,我也遇到了同样的麻烦。
那么……为什么现在能找到项目的类,却找不到资源呢?任何帮助将非常感激。谢谢!
附言这是在 Eclipse 中,针对 API 10 进行编码。
最佳答案
尝试替换
Intent intent = new Intent(this, com.didjit.filechooser.FileChooser.class);
与
Intent intent = new Intent("com.didjit.filechooser.FileChooser");
他们目前的做法是告诉 Intent 该 Activity 在您当前的项目中。这就是它找不到外部资源的原因。我建议的方式是打开外部应用程序的标准方式。
关于java - 启动外部 Activity 的无尽问题 - 找不到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650513/