![](/img/trans.png)
[英]How to set the package/applicationId for android instant app?
[英]AndroidAnnotations + Instant App - The generated <applicationId>.R class cannot be found
我目前正在使用android-topeka示例项目开发 Android 即时应用程序。
在我的 Activity 上使用AndroidAnnotations之后,一切都按预期工作:
@EActivity(resName = "activity_start")
public class StartActivity extends AppCompatActivity {
...
}
如果我想启动应用程序( :installed
),一切正常,但对于即时应用程序( :instant
),我收到以下错误:
:base:javaPreCompileDebugFeature UP-TO-DATE
error: The generated <applicationId>.R class cannot be found
1 error
:base:compileDebugFeatureJavaWithJavac FAILED
附加信息:
如果我删除基础 build.gradle 中的
application project(':installed')
,我可以启动即时应用程序,但应用程序 ID错误(在:installed
项目中配置)。
最后我得到了它,在这个问题跟踪器的帮助下(感谢 Kay-Uwe Janssen)。 也感谢杰斯。 总的来说,它是与 Manifest Finder 和annotationProcessorOptions
相结合的设置。
这是我的 gradle/Manifest 设置的样子:
根据:
构建.gradle:
android {
...
baseFeature true
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ["resourcePackageName": "com.test.base"]
}
}
}
buildTypes {
release {
}
}
}
dependencies {
application project(':installed')
...
}
AndroidManifest.xml:
<manifest ...
package="com.test.base">
...
</manifest>
安装:
构建.gradle:
android {
...
}
dependencies {
implementation project(':base')
}
AndroidManifest.xml:
<manifest package="com.test2">
</manifest>
立即的:
构建.gradle:
android {
defaultConfig {}
}
dependencies {
implementation project(':base')
}
通过此设置,Instant App 与已安装的“com.test2”具有相同的 App-Id
基于此SO 相关帖子:
当您修改applicationId
时会发生此错误。 示例中提供的脚本假定您已声明android.defaultConfig.applicationId
。 如果未声明,则该值将为null或生成null.R 。
defaultConfig { // Rest of Config javaCompileOptions { annotationProcessorOptions { arguments = ["resourcePackageName": "<Original Package Name>"] } } }
注意:原始Package Name
应与R
在您的活动中的位置相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.