尝试使用javac编译Java源代码:包R不存在

时间:2019-11-09 22:31:52

标签: java android javac

我收到使用Javac将Java源代码编译成类的错误。

MainActivity文件夹中只有res的布局,我用R.java生成了aapt2并将其导入。

我使用以下内容创建了R.java

aapt2 link --manifest AndroidManifest.xml -I android.jar -R co/layout_activity_main.xml.flat --java 

这是我遇到的错误。

javac it/dummy/MainActivity.java -cp knoxsdk.jar:android.jar:it/
it/dummy/MainActivity.java:12: error: cannot find symbol
import it.dummy.R;
               ^
  symbol:   class R
  location: package it.dummy
it/dummy/MainActivity.java:19: error: package R does not exist
        setContentView(R.layout.activity_main);
                        ^
it/dummy/MainActivity.java:21: error: package R does not exist
        final Button activateBtn = findViewById(R.id.activateBtn);
                                                 ^
it/dummy/MainActivity.java:29: error: package R does not exist
        final Button installBtn = findViewById(R.id.installBtn);
                                                ^
it/dummy/MainActivity.java:37: error: package R does not exist
        final Button updateBtn = findViewById(R.id.updateBtn);
                                               ^
5 errors

2 个答案:

答案 0 :(得分:1)

我假设 R.java 在它/dummy/ 中并且 MainActivity.java 有 package it.dummy;。似乎错误的是类路径:应该包含 '.' 而不是 'it/':

javac it/dummy/MainActivity.java -cp knoxsdk.jar:android.jar:.

答案 1 :(得分:0)

我认为您需要先编译您的资源,以便以后使用link选项将它们链接起来,如下所示。

aapt2 compile -o co/res/ app/src/main/res/layout/layout_activity_main.xml

另请参阅this answer

相关问题