AndroidX错误:新旧数据绑定程序包在依赖项中均可用

时间:2019-01-16 10:07:49

标签: android data-binding android-databinding androidx

我已经更新了gradle.proparties

function multiply(s) {
  return function(b) {
    return s * b;
  }

}

console.log(multiply(4)(5))
console.log(multiply(2)(4, 5))

错误日志:

android.useAndroidX=true
android.enableJetifier=true

6 个答案:

答案 0 :(得分:1)

即使您enable the use of AndroidX

function emailIsValid (emailInput) {
    //var check =  /\S+@\S+\.\S/.test(emailInput);
    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if( re.test(String(emailInput).toLowerCase()))
    {
        return true;
    }
}


  export default function Contact() {

  const [nameInput, setName] = React.useState("");
  const [emailInput, setEmail] = React.useState("");
  const [messageInput, setMessageInput] = React.useState("");
  var emailCheck = emailIsValid(emailInput);

  const enables = messageInput.length > 0 && emailInput.length > 0 && nameInput.length > 0 && emailCheck;

  return (

    <div className="App">

     <div className="header">
            <div className="logo">
              Chavy
            </div>

     <div className="menu">

     <Link className="link" activeonlywhenexact="true" to="/">
        <span className="title" style={{cursor:"pointer"}}>Home</span>
          <span className="bar"></span>
        </Link>
        <Link className="link" to="/workSection">
        <span className="title" style={{cursor:"pointer"}}>Work</span>
          <span className="bar"></span>
        </Link>
        <Link className="link" to="/contact">
        <span className="title" style={{cursor:"pointer"}}>Contact</span>
          <span className="bar"></span>
        </Link>
       </div>

    </div>
    <div className="container">
      <div className="row">
        <div className="column">
          <img src={logo} style={{height:"500px", width:"600px"}} alt="logo"/>
         </div>
         <div className="row">
         <div className="column column-10"><hr className="style-four"></hr></div>

        <p style={{margin:"30px"}}>
        ---
        </p>
        <label htmlFor="fname" style={{fontSize:"20px", fontWeight:"200"}}>Full Name:</label>
        <br />
        <input type="text" id="firstname" placeholder="Your name:"
            value={nameInput}
            name="name"
            onChange={event => {
              const value = event.target.value;
               setName(value);
            }}
            required
        />

     <br />
     <div style={{margin:"30px"}}>
    <label htmlFor="lname" style={{fontSize:"20px", fontWeight:"200"}}>Email:</label>
        <br />
    <input type="email" id="email" placeholder="Your email:"
        value={emailInput}
        name="email"
        onChange={event => {
            const value = event.target.value;
            setEmail(value);
        }}
        required
        />
    <br />
    </div>
    <div style={{margin:"30px"}}>
    <label htmlFor="textarea" style={{fontSize:"20px", fontWeight:"200"}}>Message:</label>
     <br />
    <textarea id="message" placeholder="Type your message here:"
    value={messageInput}
    onChange={event => {
       const value = event.target.value;
       setMessageInput(value);
    }}
    name="message"
    required
    />
   <br />
   <Link to="/contactAfter">
   <button
    disabled={!enables}
    onClick={() =>
    sendMessage(messageInput,emailInput,nameInput)
    }
    className="myButton"
    name = "messageInput"
   >Send Message</button></Link>
   </div>
         </div>
        </div>

和数据绑定

android.useAndroidX=true
android.enableJetifier=true

您仍然会遇到与依赖项有关的问题。

我建议您,自动重构和更改所有必要的Android X导入,以避免此类问题。

选择您的项目,继续android { ... ... dataBinding { enabled = true } } > Refactor

enter image description here

答案 1 :(得分:0)

  

AndroidX错误:新旧数据绑定程序包在依赖项中均可用。

此错误意味着您尚未将所有旧依赖项转换为各自的新依赖项。

This official page有一个工件映射列表。您需要确定旧的依赖项,并将其更改为新的依赖项,如上页所示。

例如-

  

com.android.support:cardview-v7可用于   androidx.cardview:cardview:1.0.0 com.android.support:support-v4-   androidx.legacy:legacy-support-v4:1.0.0

一旦将所有依赖项更改为新的工件,您的错误就会解决。 如果您需要了解AndroidX,请访问detailed answer

答案 2 :(得分:0)

android.databinding.enableV2=true

将此行添加到gradle.properties文件中。

此外,build.gradle(应用程序)文件的片段也将很有帮助。

答案 3 :(得分:0)

在迁移后发生这种情况时...只需删除保存已生成源的build目录(即使所有工件已被build.gradle替换,生成的数据绑定也可能这些来源中仍然存在-导致重复警告。

答案 4 :(得分:0)

就我而言,我刚刚删除了implementation 'androidx.databinding:databinding-compiler:3.5.3'

答案 5 :(得分:0)

我遇到了相同的错误,删除了此行后它得到了解决 (实现'androidx.databinding:databinding-compiler:3.6.0') 从我在app / build.gradle中的依赖 希望对您有帮助