Evg*_*eny 5 android intellij-idea android-resources android-studio
我在eclipse中有一个具有以下结构的android项目:
|Project1
|-src
|-res
|Project2
|-src
|-res
Run Code Online (Sandbox Code Playgroud)
Project2链接到Project1的源和资源.(在Eclipse中:属性 - > Java构建路径 - >源 - >链接源).
我尝试在IDEA中导入具有相同结构的项目(项目将一次在Eclipse和IDEA中使用).导入时,我遇到了以下问题:
1.如果我在Project2的依赖项中添加Project1(项目结构 - >依赖项),我在尝试运行Project2时收到错误:
android-apt-compiler:...\AndroidManifest.xml:45:错误:错误:发现Noresource匹配给定名称(''''的值为''drawable/ic_launcher')
android-apt-compiler:...\AndroidManifest.xml:45:错误:错误:找不到与给定名称匹配的资源(在'label'处,值为'@ string/app_name')
...
但是在代码(Project2)中,我可以从Project1引用资源而没有任何错误.
2.然后我尝试将Project2路径设置为Project1的资源目录(项目结构 - > Facet'Android' - > Structure),并收到错误:
android-apt-compiler:...\res\values\dimens.xml:7:错误:已经定义了资源条目activity_vertical_margin.
android-apt-compiler:...\res\values\strings.xml:1412:错误:已经定义了资源条目device_not_found.
...
3.我还尝试将res和src文件夹添加为内容根(项目结构 - >源),并接收通知:
模块Project1不得包含源根"...\Project1\src".根已经属于模块"Project2".
4.我尝试设置与步骤1中相同的参数,另外将Project1设为库(项目结构 - > Facet'Android' - >库模块).我收到Project1的错误:
java:...\Project1\src\com ...\TimeLineFragment.java:276:需要常量表达式java:...\Project1\src\com ...\TimeLineFragment.java:276:需要常量表达式
对于像这样的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_open_dial_pad:
mDialPadListener.openDialpad();
return true;
case R.id.action_delete_all:
mObserver.onDeleteAllEventsAction();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
我没有更多想法如何在IDEA中导入项目.有没有解决方法如何做到这一点(对于描述的项目结构),所以在Eclipse中一切正常?
只需转到Artifacts Settings、Modules、Sources 选项卡即可纠正错误 3,您将看到 2 个名为“gen”和“gen[ generated]”的文件夹,通过单击右侧的 X 图标删除“gen”它的。
现在,要使用这两个“项目”,您需要了解 Eclipse 中的“项目”相当于 Intellij 中的“模块”,因此您所需要做的就是打开一个项目,然后“导入” Module”,所以你选择对方的“Project”,这样他们就能看到对方的资源和代码。
| 归档时间: |
|
| 查看次数: |
5878 次 |
| 最近记录: |