android - आइटम के लिए अभिभावक को पुनर्प्राप्त करने में त्रुटि:कोई संसाधन नहीं मिला जो AppCompat v23 में अपग्रेड करने के बाद दिए गए नाम से मेल खाता है




android-studio gradle (20)

मैं एपीआई 23 से 22 तक डाउनग्रेड करना चाहता था और यह त्रुटि मिली। संकलन के लिए मुझे एक परियोजना में सभी build.gradle फ़ाइलों को बदलना पड़ा।

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.yourapp.app"
        minSdkVersion 14
        targetSdkVersion 22
    }
...
dependencies {
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.google.android.gms:play-services-gcm:10.0.1'
}

मैंने हमेशा एंड्रॉइड के साथ एंड्रॉइड प्रोग्राम किया है और एंड्रॉइड स्टूडियो में माइग्रेट करना शुरू करने का फैसला किया है। मैंने उसी एसडीके का उपयोग करने का फैसला किया जो मेरे पास ग्रहण के लिए पहले से था, फिर:

  • एक नई परियोजना शुरू की
  • न्यूनतम एसडीके 4.0 सेट करें (एपीआई स्तर 14)
  • खाली गतिविधि विकल्प चुनें
  • गतिविधि नाम और लेआउट नाम के लिए प्रयुक्त डिफ़ॉल्ट नाम
  • खत्म करो

कुछ सेकंड के बाद ग्रैडल बिल्ड को खत्म कर देता है, और यह फ़ाइल टेस्ट 4 \ app \ build \ intermediates / exploded-aar \ com.android.support \ appcompat-v7 \ 23.0.0 \ res \ values ​​फ़ाइल में निम्न संदेशों के साथ दो त्रुटियों को फेंकता है -v23 \ मूल्यों v23.xml:

त्रुटि: (2) आइटम के लिए अभिभावक को पुनर्प्राप्त करने में त्रुटि: कोई संसाधन नहीं मिला जो दिए गए नाम 'एंड्रॉइड से मेल खाता है: TextAppearance.Material.Widget.Button.Inverse'।

त्रुटि: (2) आइटम के लिए अभिभावक को पुनर्प्राप्त करने में त्रुटि: कोई संसाधन नहीं मिला जो दिए गए नाम 'एंड्रॉइड से मेल खाता है: विजेट। सामग्री। बटन। रंगीन'।

फ़ाइल के तहत -> परियोजना संरचना -> मॉड्यूल: ऐप (बाएं कॉलम) -> गुण टैब , मेरे पास निम्न संस्करण स्थापित हैं:

  • "संकलन एसडीके संस्करण": एंड्रॉइड 5.1 (एपीआई लेवल 22)
  • "बिल्ड टूल्स वर्जन": 23.0.2

इसे ठीक करने के लिए मुझे क्या करना चाहिए?

मैंने पहले से ही स्टैक ओवरफ़्लो प्रश्न एपकोपेट-वी 7: 21.0.0 ' में सुझाए गए सुझावों का प्रयास किया है : कोई संसाधन नहीं मिला है जो दिए गए नाम से मेल खाता है: attr' android: actionModeShareDrawable ' , लेकिन यह काम नहीं किया।


एंड्रॉइड स्टूडियो अपग्रेड करें।

मुझे एंड्रॉइड स्टूडियो 1.3.1 के साथ यह समस्या थी और मेरे किसी भी अन्य उत्तर ने मेरे लिए काम नहीं किया, लेकिन 1.5.1 को अपडेट करने के बाद कोई समस्या नहीं थी।


यदि आपने पिछले Google PlayServices या AppCompatv7 संस्करण में लक्ष्य बदलने की कोशिश की है और यह काम नहीं करता है, तो जांचें कि आपके पास कोई प्रोजेक्ट-लाइब्रेरी निर्भरता है या नहीं, यह प्रोजेक्ट इनमें से किसी भी पुस्तकालय के नवीनतम संस्करण को लक्षित करेगा। Google मानचित्र यूटिल लाइब्रेरी प्रोजेक्ट के साथ यह मेरे साथ हुआ:

बदलने के:

compile 'com.google.android.gms:play-services:+'

सेवा मेरे

compile 'com.google.android.gms:play-services:8.3.0'

फिर आप पूर्ण लक्ष्यीकरण API 22 जारी रख सकते हैं

यदि यह अभी भी संकलित नहीं होता है, तो कभी-कभी compileSdkVersion API को 23 और targetSdkVersion को 22 पर सेट करने के लिए उपयोगी होता है।


जब आप अपने एंड्रॉइड स्टूडियो को अपडेट करते हैं, तो यह डिफ़ॉल्ट रूप से एपीआई संस्करण 23 का उपयोग करता है, जो इसकी घटना का मुख्य कारण है। इसलिए,

सबसे पहले, build.gradle (मॉड्यूल: ऐप) में अपना AppCompat संस्करण देखें,

यदि 23 में बदलने के बाद कोई त्रुटि होती है तो बस डाउनलोड करें

Compile Sdk Version to API 23, and Build Tools Version to 23.0.0

एसडीके प्रबंधक से। यदि पहले से डाउनलोड किया गया है तो:

1. Go to SDK Manager and
2. Under Project Structure, change *Compile SDK Version* to API 23, and *Build Tools Version* to 23.0.0

एसडीके प्रबंधक बटन पर क्लिक करें और संवाद खोलें।

एसडीके प्लेटफ़ॉर्म पर क्लिक करें और जांचें कि एंड्रॉइड 6.0 डाउनलोड है या नहीं।

यदि नहीं, तो पहले इसे डाउनलोड करें। डाउनलोड पूरा करने के बाद, लागू करें पर क्लिक करें

अब आपको सेटिंग से अपने प्रोजेक्ट में बदलाव लागू करने की जरूरत है। फिर सेटिंग खोलने के लिए Ctrl + Alt + Shift + S दबाएं

  1. सूची से ऐप पर क्लिक करें।
  2. गुण क्लिक करें
  3. एपीआई 23 में अपना संकलन एसडीके संस्करण बदलें
  4. अपने बिल्ड टूल्स संस्करण को 23.0.0 में बदलें

अपनी परियोजना को पुनर्निर्माण करना न भूलें।

तब आपकी त्रुटि चली जाएगी।


मेरे मामले में यह Google-play-services का एक उच्च संस्करण था। मैंने उन्हें 7.0.0 (8.x नहीं) पर सेट किया और सब ठीक था।


android {
    compileSdkVersion 23
    buildToolsVersion '23.0.1'

defaultConfig {
    applicationId ""
    minSdkVersion 14
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.1'
}

यदि आप फोनगैप (क्रॉस-प्लेटफ़ॉर्म) का उपयोग कर रहे हैं और उपरोक्त एक ही समस्या प्राप्त कर चुके हैं, तो नीचे दिए गए आदेश का उपयोग करके एंड्रॉइड प्लेटफार्म को हटा दें।

फोनगैप मंच एंड्रॉइड हटा दें

और इसे फिर से जोड़ें।

फोनगैप मंच एंड्रॉइड जोड़ें

फिर समस्या मेरे लिए हल हो गई।


आपको compileSdkVersion को 23 पर सेट करने की आवश्यकता है।

चूंकि एपीआई 23 एंड्रॉइड ने अपरिपक्व अपाचे एचटीपी पैकेज को हटा दिया है, इसलिए यदि आप उन्हें सर्वर अनुरोधों के लिए उपयोग करते हैं, तो आपको इस लिंक में बताए गए build.gradle लिए build.gradle लाइब्रेरी 'org.apache.http.legacy' org.apache.http.legacy 'org.apache.http.legacy' जोड़ना होगा:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

सुनिश्चित करें कि ये सभी अद्यतित हैं।


आपका संकलन एसडीके संस्करण समर्थन लाइब्रेरी प्रमुख संस्करण से मेल खाना चाहिए। यह आपकी समस्या का समाधान है। आप build.gradle फ़ाइल में अपनी build.gradle स्क्रिप्ट में इसे आसानी से देख सकते हैं। एफएक्स: यदि आपका संकलन compileSdkVersion 23 है तो आपकी संकलन लाइब्रेरी 23 से शुरू होनी चाहिए।

  compileSdkVersion 23
    buildToolsVersion "23.0.0"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 340
        versionName "3.4.0"
    }
dependencies {
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.0.1'
}

और हमेशा जांचें कि आपके एंड्रॉइड स्टूडोई में समर्थित एपीआई स्तर है। आप इसे अपने एंड्रॉइड एसडीके में देख सकते हैं, इस तरह:


यह समस्या उठाई गई है क्योंकि अब संकलित एसडीके संस्करण एंड्रॉइड सपोर्ट लाइब्रेरी के प्रमुख संस्करण से मेल खाना चाहिए।

मेरे मामले में मेरे पास Android Support Library संस्करण 23 है, इसलिए मुझे Android SDK version 23 खिलाफ संकलन करना पड़ा, और मुझे इसे अपनी build.gradle फ़ाइल में बदलना पड़ा:

वैसे आप में से कुछ को एसडीके, Android 6.0 (API 23) स्थापित करने की आवश्यकता होगी

और ग्रेडल फ़ाइलों के साथ परियोजना सिंक करना न भूलें


मुझे समाधान मिला, जब मैंने एसडीके अपडेट किया, तो समस्या शुरू हुई, इसके बाद मैंने अलग-अलग buildToolsVersion ('22 .0.1 ') का उपयोग किया और मैं ' com.android.support:appcompat-v7:23.0.0 'संकलित जैसे विभिन्न समर्थन लाइब्रेरी का उपयोग कर रहा था, आपको नीचे छवि में दिखा रहा है

यह " android.widget.Material ..." की समस्या को बढ़ा रहा था। फिर मैंने समर्थन पुस्तकालय के लिए समान संस्करण का उपयोग किया जैसे compile 'com.android.support:appcompat-v7:22.0.1' और इसके बाद। (नीचे स्क्रीनशॉट में दिखा रहा है)


एक और समाधान: नेविगेट करें

\sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.x.x

7-ज़िप या .aar साथ खुली .aar फ़ाइल, res फ़ोल्डर में values-23 फ़ोल्डर हटाएं और परिवर्तनों को सहेजें।


मैं पिछले जवाब से सहमत हूं। आपका संकलन एसडीके संस्करण समर्थन पुस्तकालय से मेल खाना चाहिए। मैंने जो किया था यह रहा।

  1. आप एसडीके प्रबंधक और एसडीके प्लेटफार्म के तहत जा सकते हैं, एपीआई स्तर 23 के साथ एंड्रॉइड 5. एक्स इंस्टॉल करें।
  2. परियोजना संरचना के तहत, एसपीके संस्करण को एपीआई 23 में संकलित करें, और बिल्ड टूल्स संस्करण को 23.0.0 पर बदलें

फिर इसे बिना किसी समस्या के निर्माण करना चाहिए।


ऐसा इसलिए होता है क्योंकि अपडेट के बाद एंड्रॉइड स्टूडियो डिफ़ॉल्ट रूप से एपीआई संस्करण 23 का उपयोग करता है

निम्नलिखित मेरे लिए काम किया:

प्रोजेक्ट स्ट्रक्चर पेज पर जाने के लिए Ctrl + Shift + Alt + S दबाएं । प्रॉपर्टी टैब पर जाएं और बिल्ड टूल एरिया में 23.0.0 से 22.0.1 (या जो आप पहले इस्तेमाल कर रहे थे उसके बराबर) बदलें और अपनी प्रोजेक्ट का पुनर्निर्माण करें।

यदि यह काम नहीं करता है, तो धीरे-धीरे जाएं: ऐप और फिर

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'

V7: 23.0.0 को v7: 22.2.1 को ऊपर दिखाए गए अनुसार और क्रमबद्ध सिंक करें। यह निश्चित रूप से काम करेगा।


मॉड्यूल पर: ऐप (ग्रैडल)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.namepack.nameappxxxxx"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

प्रोजेक्ट: nameAppXXXX (ग्रैडल)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'

    }
}

allprojects {
    repositories {
        jcenter()
    }
}

और उदाहरण के लिए AppCompatActivity की अपनी गतिविधि संपादित करें गतिविधि:

package com.namepack.nameappxxxxx;


import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;

public class NameClass extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
    }


}

सबकुछ बढ़िया है लेकिन आप में से कोई भी एसडीके बिल्ड टूल्स को डाउनलोड करने के लिए समझाया नहीं गया है


आपको अपने प्रोजेक्ट को नवीनतम संस्करण के साथ संकलित करना चाहिए ताकि अपने एसडीके से अपडेट और इंस्टॉल हो। sync project with Gradle file बटन के साथ sync project with Gradle file अपने प्रोजेक्ट को sync project with Gradle file करें।
आप मौजूदा संस्करण के साथ भी जारी रख सकते हैं लेकिन एपीआई 22 को इंगित करने वाली छवि के नीचे ठीक से इंस्टॉल की जांच करें जो ठीक तरह से स्थापित है।

और यदि आवश्यक हो तो अपनी परियोजना को सिंक करें।

यह मदद कर सकता है।


यदि आपको नवीनतम एसडीके और एंड्रॉइड स्टूडियो डाउनलोड करने के बाद भी त्रुटियां मिल रही हैं, तो मैंने यह किया है:

  1. सबसे हालिया एसडीके डाउनलोड करें
  2. फ़ाइल खोलें- परियोजना संरचना ( Ctrl + Alt + Shift + S )
  3. मॉड्यूल में, ऐप का चयन करें
  4. गुण टैब में: एपीआई 23 एंड्रॉइड 6.0 marshmallow (नवीनतम) में एसडीके संस्करण संकलित बदलें

मुझे उम्मीद है कि यह किसी की मदद करेगा ताकि वह इन दिनों के लिए ऐसा नहीं करेगा जैसा मैंने किया था।


जैसे ही मैं इसका वर्णन कर सकता हूं, एनडीके का उपयोग करने वाले ग्रहण के भीतर से एक एंड्रॉइड ऐप का निर्माण करना दो चरणों की आवश्यकता है।

सबसे पहले, अपने टर्मिनल के अंदर आपको अपने प्रोजेक्ट पर NDK बिल्ड स्क्रिप्ट चलाने की आवश्यकता है। अपनी परियोजना निर्देशिका की जड़ में सीडी और फिर उस निर्देशिका के भीतर एनडीके-बिल्ड स्क्रिप्ट निष्पादित करें।

उदाहरण के लिए:

cd ~/workspace/hello-jni
./~/android-ndk-1.5_r1/ndk-build

ऐसा करने के बाद, आपको कुछ आउटपुट देखने चाहिए जो कि आपके प्रोजेक्ट निर्देशिका के भीतर * .js निर्देशिका में * .SO फ़ाइल का निर्माण करता है।

एक बार आपके पास * .SO फ़ाइल हो, तो ग्रहण के माध्यम से एंड्रॉइड एनडीके के साथ एक एप्लिकेशन बनाने का अंतिम चरण यह है कि आप ग्रहण के साथ इसका निर्माण करेंगे जैसे कि आप किसी अन्य एप्लिकेशन को करेंगे और फिर इसे परीक्षण के लिए तैनात करेंगे।

यदि आप C / C ++ कोड में कोई परिवर्तन करते हैं तो आपको चरण एक को दोहराना होगा और अपने आवेदन को फिर से ग्रहण करने से पहले अपने * .SO फ़ाइल को फिर से बनाने और तैनात करने की आवश्यकता होगी।

मैं यह नोट करना चाहूंगा कि Android NDK का उपयोग करके आपके Android ऐप्स अभी भी जावा पर आधारित हैं। वे जावा नेटिव इंटरफ़ेस के माध्यम से C / C ++ में लिखे कोड के साथ संवाद कर रहे हैं।

अंत में, मैं किसी भी एक्लिप्स प्लगइन्स से अवगत नहीं हूं जो NDK के विकास में सहायता करेगा। एनडीके के बारे में मैं जो कुछ भी जानता हूं वह मैंने आधिकारिक एंड्रॉइड एनडीके प्रलेखन सीखा है। कृपया बेझिझक टिप्पणी करें और मुझे बताएं कि क्या मेरी प्रतिक्रिया में कुछ भी स्पष्ट हो सकता है।





android android-studio gradle