Android注释和applicationIdSuffix

时间:2015-06-29 13:11:35

标签: android android-gradle android-annotations

我最近一直在尝试Android annotations,一切都运行良好,直到我决定在我applicationIdSuffix文件的buildTypes中添加build.gradle。目前它看起来像这样:

buildTypes {
    debug {
        applicationIdSuffix '.debug'
    }

    ...
}

在编译时,我在gradle控制台中获得以下日志:

  

:app:preDebugBuild UP-TO-DATE
    :应用:checkDebugManifest
  :app:preReleaseBuild UP-TO-DATE
  :app:pre_testBuild UP-TO-DATE
  :app:prepareComAndroidSupportAppcompatV72220Library UP-TO-DATE
  :app:prepareComAndroidSupportSupportV42220Library UP-TO-DATE
  :应用:prepareDebugDependencies
  :app:compileDebugAidl UP-TO-DATE
  :app:compileDebugRenderscript UP-TO-DATE
  :app:generateDebugBuildConfig UP-TO-DATE
  :app:generateDebugAssets UP-TO-DATE
  :app:mergeDebugAssets UP-TO-DATE
  :app:generateDebugResValues UP-TO-DATE
  :应用:processDebugGoogleServices
  找不到包名称'org.me.myapp.debug'的匹配客户   :应用:generateDebugResources
  :app:mergeDebugResources UP-TO-DATE
  :app:processDebugManifest UP-TO-DATE
  :app:processDebugResources UP-TO-DATE
  :app:generateDebugSources UP-TO-DATE
  :app:processDebugJavaRes UP-TO-DATE
  :应用:compileDebugJavaWithJavac
  注意:将日志文件解析为/dir/myapp/app/build/generated/source/apt/androidannotations.log
  注意:使用选项初始化AndroidAnnotations 3.3.1 {androidManifestFile = / dir / myapp / app / build / intermediates / manifests / full / debug / AndroidManifest.xml}
  注意:开始处理18个元素的4个注释
  注意:使用指定路径找到AndroidManifest.xml文件:/dir/myapp/app/build/intermediates/manifests/full/debug/AndroidManifest.xml   注意:AndroidManifest.xml发现:AndroidManifest [applicationPackage = org.me.myapp.debug,componentQualifiedNames = [org.me.myapp.ui.MainActivity_,net.hockeyapp.android.UpdateActivity],permissionQualifiedNames = [android.permission.ACCESS_WIFI_STATE, android.permission.ACCESS_NETWORK_STATE],applicationClassName = null,libraryProject = false,debugabble = false,minSdkVersion = 15,maxSdkVersion = -1,targetSdkVersion = 22]
  错误:无法找到生成的org.me.myapp.debug.R类   注意:找到Android类:android.R
  注意:时间测量:[整个处理= 15 ms],[Extract Manifest = 4 ms],[Extract Annotations = 3 ms],
  注意:完成处理
  注意:开始处理0个元素上的0个注释   注意:时间测量:[整个处理= 0 ms],
  注意:完成处理
  1错误
  失败
  失败:构建失败,例外。
  *出了什么问题:
  任务':app:compileDebugJavaWithJavac'执行失败。

我已经尝试过再次清理和重建,从项目中删除generated目录,但没有任何帮助。如果我从applicationIdsuffix文件中删除build.gradle,一切正常。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:22)

对我而言,这种情况正在发生,因为google-services.json指的是我的生产包名称。在撰写本文时,最好的解决方案似乎是编写自己的gradle任务以在文件的releasedebug版本之间切换,或者在文件中包含两个包名称:

google-services.json for different productFlavors

答案 1 :(得分:9)

build.gradle文件中删除此行:

resourcePackageName android.variant.applicationId

修改:尝试将此行添加到apt块:

resourcePackageName "org.me.myapp"