दिए गए विरूपण साक्ष्य में एक स्ट्रिंग संदर्भ होता है जिसमें पैकेज संदर्भ 'android.support.v4.content' लिखा होता है जिसे सुरक्षित रूप से दोबारा नहीं लिखा जा सकता है। androidx के लिए


99

मैंने अपना नवीनीकरण किया android studio to 3.4 canaryऔर अब मैं निम्नलिखित त्रुटि के कारण सफलतापूर्वक निर्माण नहीं कर सकता:

The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.

अधिक जानकारी:

Caused by: java.lang.RuntimeException: Failed to transform '.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/9.0.0-SNAPSHOT/732f93940c74cf32a7c5ddcc5ef66e53be052352/butterknife-compiler-9.0.0-SNAPSHOT.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)

जाहिर है, इसके साथ कुछ करना है Butterknife, androidx and Jetifier

किसी को पता है कि यह कैसे ठीक करने के लिए?


यह कोशिश की: यह लेकिन कोई किस्मत नहीं
Tnaffh

काली सूची में जोड़ने के लिए आपने क्या नियमित अभिव्यक्ति की थी?
जॉर्ज गिल

दिए गए विरूपण साक्ष्य में पैकेज संदर्भ 'android.support.v4.widget' के साथ एक स्ट्रिंग शाब्दिक शामिल है जिसे सुरक्षित रूप से फिर से नहीं लिखा जा सकता है। एनोटेशन प्रोसेसर जैसे प्रतिबिंब का उपयोग करने वाले पुस्तकालयों को androidx के लिए समर्थन जोड़ने के लिए मैन्युअल रूप से अपडेट करने की आवश्यकता है। मैं उपरोक्त त्रुटि प्राप्त कर रहा हूं, जब मैं हस्ताक्षरित APK बनाने की कोशिश कर रहा हूं, जो कि minifyenabled और संकोचनों के साथ सेट किया गया है। मैं अन्यथा एमुलेटर या डिवाइस में एप्लिकेशन चलाने में सक्षम हूं। इस समस्या को कैसे हल करें?
अर्पित रस्तोगी

अच्छा प्रश्न! बहुत सहायक, धन्यवाद
Androider

जवाबों:


148

नया सही उत्तर:

Butterknife 10.0.0 ने AndroidX के लिए समर्थन जोड़ा।

dependencies {
    implementation 'com.jakewharton:butterknife:10.0.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

बटरकनीफ के लिए पुराना उत्तर <10.0.0:

जेटफ़ायर से बटरकाइफ़ को ब्लैकलिस्ट करने की कोशिश करें:

gradle.properties file:

android.jetifier.blacklist = butterknife.*\\.jar

आपको एजीपी के 3.3.0-rc1 और कोटलिन ग्रेड प्लगइन के 1.3.0 संस्करण पर होना चाहिए:

buildscript {
    repositories {
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-rc01'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.0"
        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
    }
}

मुझे लगता है कि आप android.jetifier.blacklist = butterknife नहीं जोड़ते हैं। * \\। जार क्योंकि मैंने परीक्षण किया कि यह काम नहीं किया। आप केवल classpath 'com.jakewharton: butterknife-gradle-plugin: 9.0.0-rc2' जोड़ते हैं, तब यह तब काम करेगा जब डिबग और एक्सपोर्ट फाइल एपीके बिना किसी समस्या के हो।
kimcy929

अधिक जानकारी यहाँ जारी की
जूड फर्नांडिस

1
यह उत्तर सही है, लेकिन इस पर एक नज़र है: stackoverflow.com/a/54345816/371749 अद्यतन बटरकॉइन को 10 तक अपडेट करें, इस मुद्दे को भी बेहतर तरीके से हल करता है।
cV2

यह समाधान डीबग बिल्ड के लिए ठीक काम करता है, लेकिन मैं हस्ताक्षरित रिलीज़ एपीके बनाने में सक्षम नहीं हूं। दिए गए विरूपण साक्ष्य में पैकेज संदर्भ 'android.support.v4.widget' के साथ एक स्ट्रिंग शाब्दिक शामिल है जिसे सुरक्षित रूप से फिर से नहीं लिखा जा सकता है। एनोटेशन प्रोसेसर जैसे प्रतिबिंब का उपयोग करने वाले पुस्तकालयों को androidx के लिए समर्थन जोड़ने के लिए मैन्युअल रूप से अपडेट करने की आवश्यकता है।
अर्पित रस्तोगी

बहुत उपयोगी है, धन्यवाद
Androider

60

मक्खन निर्भरता के अंतिम संस्करण को जोड़ें यदि आप इसे बदलते हैं तो इसे यहाँ देख सकते हैं ( https://github.com/JakeWharton/butterknife )। यह androidX को सपोर्ट करता है। फिर अपने ऐप बिल्ड बिल्ड पर जाएं और पुराने संस्करण को निम्न के साथ बदलें:

dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

27

Androidx के लिए बस अपनी निर्भरता को संस्करण '10 .0.0 'में अपग्रेड करें

dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

यहाँ प्रलेखन के लिए देखो


मेरा क्लिक करें संपादित करें पाठ बॉक्स अशक्त सूचक देता है। यह प्रारंभिक नहीं है।
वासुदेव व्यास

18

ButterKnife को नवीनतम संस्करण में अपग्रेड करें और इन्हें अपने build.gradle (ऐप) में जोड़ना सुनिश्चित करें:

android {
...
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

सबसे अच्छा जवाब, उत्थान के बाद मैंने इस समाधान के लिए खोज की है -> त्रुटि: स्टेटिक इंटरफ़ेस विधियों को केवल एंड्रॉइड एन (--मिन-एपी 24) से शुरू करने का समर्थन किया जाता है: शून्य बटरक्लाइफ।यूएनबाइंडर। लैम्बडा $ स्थिर $ 0 ()
एविस्पर

लव यू मैन यार तुमने इसे बनाया ... मैंने आधा दिन खोजा बर्बाद किया तो यह जवाब आता है।
जीशान मेहदी

1

अगर आप मक्खन का उपयोग करते हैं तो कौन सा संस्करण? नवीनतम संस्करण 9.0.0-rc2 androidx का समर्थन करता है।

UPD: बटरनाइफ़ के गीथूब रेपो पर बंद मुद्दा है । अस्थायी वर्कअराउंड

अपनी gradle.properties फ़ाइल में android.jetifier.blacklist = butterknife-compiler जोड़ें।


मैं 9.0.0-आरसी 2 पर हूं और मुझे ठीक यही त्रुटि मिल रही है
जॉर्ज गिल

1

बटरकाइफ़ के नवीनतम संस्करण का उपयोग करके समस्या को हल किया। AndroidX का समर्थन करने के लिए> = 9.0.0-rc2 (बटरक्लाइफ संस्करण) का उपयोग करें। नवीनतम रिलीज़ के लिए लिंक की जाँच करें - https://github.com/JakeWharton/butterknife/releases


1

मेरी परियोजना में बटरकॉइन का उपयोग नहीं किया गया है, लेकिन मेरे पास एक ही त्रुटि थी "दी गई कलाकृतियों में पैकेज संदर्भ 'android.support.v4.widget' के साथ एक स्ट्रिंग शाब्दिक शामिल है जिसे सुरक्षित रूप से फिर से नहीं लिखा जा सकता है। प्रतिबिंब जैसे कि एनोटेशन प्रोसेसर का उपयोग करने वाले पुस्तकालयों की आवश्यकता है। Androidx के लिए समर्थन जोड़ने के लिए मैन्युअल रूप से अपडेट रहें "यह मैंने इसे हल करने के लिए क्या किया है: अपने पार्सलर संस्करण को अपडेट करें

gradle बिल्ड फ़ाइल

बदलने के:

annotationProcessor 'org.parceler:parceler:1.1.6'
implementation 'org.parceler:parceler-api:1.1.6'

साथ में:

  annotationProcessor 'org.parceler:parceler:1.1.13'
  implementation 'org.parceler:parceler-api:1.1.13'

कोडल फ़ाइल कोड gradle फ़ाइल दृश्य


0

परिवर्तन

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

सेवा

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

या अन्य सामग्री थीम्स। एंड्रॉइड स्टूडियो 4.0.1 में "नो एक्टिविटी" के साथ नई परियोजना शुरू करने के बाद यह त्रुटि हुई


0

बटरनाइफ़ + को अपडेट करें कैशे को अमान्य करें और पुनः आरंभ करें + सिंक करें यदि बटरकैनेफ़ ने केवल स्पष्ट कैशे और पुनरारंभ का उपयोग नहीं किया है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.