2017-04-05 152 views
0

我读了更多关于这个问题的链接,但我不知道我的项目到底是什么问题。我设置dataBinding为真上build.gradle,下面的代码是我的应用程序build.gradle文件内容android包* .databinding不存在

apply plugin: 'com.android.application' 
apply plugin: 'com.neenbedankt.android-apt' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.text.myapp" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    dataBinding { 
     enabled = true 
    } 
} 

repositories { 
    jcenter() 
    maven { url "https://jitpack.io" } 
    maven { url "https://clojars.org/repo/" } 
} 

def support_library = "25.2.0" 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile "com.android.support:appcompat-v7:${support_library}" 
    compile "com.android.support:support-v13:${support_library}" 
    compile "com.android.support:cardview-v7:${support_library}" 
    compile "com.android.support:recyclerview-v7:${support_library}" 
} 

我的活动:

public class ActivityRegister extends AppCompatActivity { 

    private ActivityRegisterBinding binding; 

    @Override 
    public void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     binding = DataBindingUtil.setContentView(this, R.layout.activity_register); 
    } 
} 

然后,活动布局上的logcat

<?xml version="1.0" encoding="utf-8"?> 
<layout 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <data> 
     <variable 
      name="presenter" 
      type="ir.pishguy.cafealachiqpro.Ui.Register.ActivityMain.Model.ActivityRegisterViewModel"/> 
    </data> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="-5dp" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/default_port" 
      android:layout_width="match_parent" 
      android:visibility="gone" 
      android:layout_height="@dimen/default_textview_height"/> 
    </LinearLayout> 
</layout> 

错误:

/Users/mahdi/Desktop/Home/Projects/Android/CafeAlachiqPro/app/src/main/java/com/text/myapp/Ui/Register/ActivityMain/Presenter/ActivityRegister.java 
Error:(11, 45) error: package com.text.myapp.databinding does not exist 
Error:(19, 13) error: cannot find symbol class ActivityRegisterBinding 
Warning:The following options were not recognized by any processor: 
'[android.databinding.artifactType, android.databinding.printEncodedErrors, android.databinding.minApi, android.databinding.isTestVariant, android.databinding.enableDebugLogs, android.databinding.sdkDir, android.databinding.bindingBuildFolder, android.databinding.enableForTests, android.databinding.modulePackage, android.databinding.generationalFileOutDir, android.databinding.xmlOutDir]' 
Error:Execution failed for task ':app:compileDebugJavaWithJavac'. 
> Compilation failed; see the compiler error output for details. 

我的视图模型:

public class ActivityRegisterViewModel extends BaseObservable { 
    private String readContactPermission; 
    private String getMessages; 

    public ActivityRegisterViewModel() { 
    } 

    @Bindable 
    public String getReadContactPermission() { 
     return readContactPermission; 
    } 

    public void setReadContactPermission(String readContactPermission) { 
     this.readContactPermission = readContactPermission; 
     notifyChange(); 
    } 

    public String getGetMessages() { 
     return getMessages; 
    } 

    public void setGetMessages(String getMessages) { 
     this.getMessages = getMessages; 
    } 
} 
+0

请发表您的错误 –

+0

@SurajMakhija公布更新后的解决,谢谢 –

回答

0

请注明变量标签定义您的视图模型如下:

<?xml version="1.0" encoding="utf-8"?> 
    <layout 
     xmlns:android="http://schemas.android.com/apk/res/android"> 

     <data> 

      <variable 
       name="<variablename>" 
       type="<packagename.YourViewModel>" /> 
     </data> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_margin="-5dp" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/default_port" 
       android:layout_width="match_parent" 
       android:visibility="gone" 
       android:layout_height="@dimen/default_textview_height"/> 
     </LinearLayout> 
    </layout> 
+0

此解决方案无法解决我的问题先生 –

+0

你是否得到相同的错误? –

+0

您是否创建了您的视图模型,并且能够在xml中定义它? –

1

删除

应用插件: 'com.neenbedankt.android-容易'

and

apt“com.github.Raizlabs.DBFlow:dbflow-processor:$ {dbflow_version}”

from gradle。这有助于我摆脱这个错误。

虽然我可以运行你的项目的原因ir.pishguy.cafealachiqpro.Ui.Register.Robot.Model.RobotViewModel不能从robot_user_action.xml

<data class="UserMessagesDataBinding"> 

     <variable 
      name="viewModel" 
      type="ir.pishguy.cafealachiqpro.Ui.Register.Robot.Model.RobotViewModel"> 
     </variable> 
    </data> 
+0

哦,在创建新的项目我没有这个包,你可以找到它的先生?我的意思是'type =“ir.pishguy.cafealachiqpro.Ui.Register.Robot.Model.RobotViewModel”' –

+0

我把布局内容粘贴到我自己的文章中,点击这一行的布局文件'binding = DataBindingUtil.setContentView(this, R.layout.activity_register);'可以在没有任何问题的情况下通过android studio打开,并在这行中点击'ActivityRegisterViewModel'' type =“ir.pishguy.cafealachiqpro.Ui.Register.ActivityMain.Model.ActivityRegisterViewModel”/>'can太开放 –

+0

您是否从Gradle中删除了这两行后尝试运行您的项目? – CodeCameo