“包R不存在”从命令行使用Gradle构建时出错 [英] "Package R does not exist" error when building with Gradle from command line
问题描述
我正尝试从命令行创建 Android
项目,其中包含 Gradle
,但当我想要改变目录结构。
目前是这样的:
。
└──main
├──AndroidManifest.xml
├──ic_launcher-web.png
├──java
│└──com
│└──myproject
│└──MainActivity.java
└──res
├──...
├──layout
│├─ ─activity_main.xml
│└──fragment_main.xml
├──...
...
然后我执行:
./ gradlew clean build
>建立成功
好的。一切都好。但现在我想创建一个新目录,所以:
创建一个 ui
目录并移动 MainActivity.java
there:
。
└──main
├──AndroidManifest.xml
├──ic_launcher-web.png
├──java
│└──com
│└──myproject
│└──ui
│└──MainActivity.java
└──res
├──...
├─ ─布局
│├──activity_main.xml
│└──fragment_main.xml
├──...
...
$ c $ package com .myproject.ui;
//进口
公共类MainActivity扩展ActionBarActivity {
...
}
在 AndroidManifest.xml $ c $>中修改它的 android:name
$ b
< activity
android:name =。ui.MainActivity
android: label =@ string / app_name>
...
< / activity>
然后尝试再次编译它:
./ gradlew clean build
出现以下错误:
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:19:error :包R不存在
setContentView(R.layout.activity_main);
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:23:error:package R does not exist
.add( R.id.container,new PlaceholderFragment())
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:33:error:package R不存在
getMenuInflater()。inflate(R.menu.main,menu);
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:43:error:package R does not exist
if(id == R.id.action_settings){
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:60:error:package R does不存在
查看rootView = inflater.inflate(R.layout.fragment_main,container,false);
BUILD FAILED
我做错了什么?任何想法?
谢谢。
解决方案您在您的活动中声明了错误的软件包。
确保包中包含com.example.blah;
声明你的Activity与你的 AndroidManifest.xml
中的包
声明相匹配。
I'm attemping to build an Android
project with Gradle
from command line, but found a problem when I want to change the directory structure.
Currently is like this:
.
└── main
├── AndroidManifest.xml
├── ic_launcher-web.png
├── java
│ └── com
│ └── myproject
│ └── MainActivity.java
└── res
├── ...
├── layout
│ ├── activity_main.xml
│ └── fragment_main.xml
├── ...
...
Then I execute:
./gradlew clean build
That ends with:
BUILD SUCCESSFUL
Ok. All fine. But now I want to create a new directory, so:
I create an ui
directory and move MainActivity.java
there:
.
└── main
├── AndroidManifest.xml
├── ic_launcher-web.png
├── java
│ └── com
│ └── myproject
│ └── ui
│ └── MainActivity.java
└── res
├── ...
├── layout
│ ├── activity_main.xml
│ └── fragment_main.xml
├── ...
...
Modify its package:
package com.myproject.ui;
// imports
public class MainActivity extends ActionBarActivity {
...
}
Modify its android:name
attribute in AndroidManifest.xml
:
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name" >
...
</activity>
And try to compile it again:
./gradlew clean build
With following errors:
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:19: error: package R does not exist
setContentView(R.layout.activity_main);
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:23: error: package R does not exist
.add(R.id.container, new PlaceholderFragment())
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:33: error: package R does not exist
getMenuInflater().inflate(R.menu.main, menu);
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:43: error: package R does not exist
if (id == R.id.action_settings) {
^
/home/birei/MyDummyProject/MyProject/src/main/java/com/myproject/ui/MainActivity.java:60: error: package R does not exist
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
BUILD FAILED
What am I doing wrong? Any ideas?
Thank you.
解决方案 This usually happens when you are declaring the wrong package in your Activity.
Make sure the package com.example.blah;
declaration in your Activity matches the package
declaration in your AndroidManifest.xml
.
这篇关于“包R不存在”从命令行使用Gradle构建时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!