ত্রুটি: (26, 0) গ্রেডেল ডিএসএল পদ্ধতিটি পাওয়া যায় নি: 'রানপ্রেগার্ড ()'


136

আমি গ্রেড সহ অ্যান্ড্রয়েড স্টুডিও 0.9.3 ব্যবহার করছি 'com.android.tools.build:gradle:0.14.+'

প্লাগইন প্রয়োগ করুন: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0.11"
    }

    signingConfigs{
        releaseConfig{
            storeFile file("xxxxxxx")
            storePassword = "xxxx"
            keyAlias = "xxxx"
            keyPassword = "xxxx"
        }
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig

            // adds version to file name
            applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:19.+'
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.google.code.gson:gson:2.2.+'
}

এই ফাইলটিতে কোনও পরিবর্তন ছাড়াই প্রকল্পটি আগে সংকলিত হয়েছিল, আমি পাচ্ছি: ত্রুটি: (26, 0) গ্রেডল ডিএসএল পদ্ধতিটি পাওয়া যায় নি: 'রানপ্রেগার্ড ()'

কীভাবে ঠিক করব?


1
আপনি রেফারেন্সের জন্য এটি পড়তে পারেন: সরঞ্জাম.অ্যান্ড্রয়েড . com / tech-docs / new-build- সিস্টেম । এটি আপনার জন্য এই জাতীয় প্রশ্ন আলোকিত করবে।
ইগোরগানাপলস্কি

উত্তর:


97

যতদূর আমি জানি runProguardপ্রতিস্থাপন করা হয়েছিল minifyEnabled। আমি কীভাবে অগ্রগতির জন্য কনফিগারটি সংজ্ঞায়িত করব তা নিশ্চিত নই তবে গুগল অনুসন্ধানে আপনাকে এটি খুঁজে পেতে সহায়তা করা উচিত।

সম্পাদনা:

outFileএখানে পড়ার জন্য : https://groups.google.com/forum/#!topic/adt-dev/4_-5NvxuFB0 তারা কীভাবে তা করে।

সংক্ষেপে: তারা আরও জটিল সংস্করণ ব্যবহার করেছে:

applicationVariants.all { variant ->

    variant.outputs.each { output ->

        def apk = output.outputFile;
        def newName;

        // newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-" + variant.buildType.name.toUpperCase() + ".apk");
        if (variant.buildType.name == "release") {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-release.apk");
        } else {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-beta.apk");
        }

        output.outputFile = new File(apk.parentFile, newName);

        if (output.zipAlign) {
            output.outputFile = new File(apk.parentFile, newName.replace("-unaligned", ""));
        }

        logger.info('INFO: Set outputFile to ' + output.outputFile + " for [" + output.name + "]");
    }
}

1
এখন এটির সাথে ত্রুটি রয়েছে: (32, 0) com.android.build.gradle.intern.api.ApplicationVariantImpl_Decorated@1615795 এ সম্পত্তি 'আউটপুটফিল' খুঁজে পাওয়া যায় নি।
নিকফ

1
এটি সঠিক, সঠিক পরিবর্তনগুলির সরঞ্জামগুলি
সোহম

আমি আউটপুটফিল সম্পর্কে ত্রুটি প্রতিফলিত করতে সম্পাদনা করেছি (বর্তমানে পীর পর্যালোচনার অপেক্ষায় রয়েছি সম্পাদনা করুন)
রাউন্ডস্প্যারো হিলিটেক্স

1
আমি সদৃশ applicationVariants.all { variant ->লাইনটি সরিয়েছি তবে
বাকীটি

আমার বিভিন্ন পদ্ধতির সাথে একই সমস্যা রয়েছে: গ্রেডেল ডিএসএল পদ্ধতিটি সংকলিত এসডকে ভার্শন () খুঁজে পাওয়া যায় নি
উসমান

131

runProguardআপনার গ্রেড ফাইল ব্যবহার না করে ব্যবহার করার চেষ্টা করুন minifyEnabled। এটি সমস্যার সমাধান করা উচিত। runProguardঅবচয় করা হয়েছে এবং শীঘ্রই কাজ করা বন্ধ করুন।

সম্পাদনা

ব্যবহারের জন্য minifyEnabled, গ্রেডেলটিকে ২.২ বা তার বেশি সংস্করণে আপডেট করা উচিত।


ত্রুটি এখন পরিবর্তিত হয়েছে -> "গ্রেডেল ডিএসএল পদ্ধতি পাওয়া যায় নি: 'মিনিফাইনেবল ()'"
শক্তিমান_ড্রয়েড

আপনি কি সর্বশেষ গ্রেড বিল্ড সিস্টেম (2.2) ইনস্টল করেছেন?
বরুণড্রয়েড

আমি একই ত্রুটি পাচ্ছি। মিনিফাইনেবল পাওয়া যায় নি। আপনি কি সমাধান খুঁজে পেয়েছেন?
হেনরিক

@ ভারন্ড্রয়েড ওহ এটি কি ২.২ এর উপর নির্ভর করে? আমার কাছে ২.১
শক্তিমান_ড্রয়েড

6
হওয়া উচিত minifyEnabled(না minifyEnable)
জে রোমেরো

112

অ্যাপ্লিকেশন build.gradle ফাইল পরিবর্তন সাহায্য করতে পারে:

পুরানো:

buildTypes {
    release {

        runProguard false // this line has to be changed

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

নতুন:

buildTypes {
    release {

        minifyEnabled false // new version

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

আপনি এখনও একই ত্রুটি পাওয়ার পরামর্শ দিয়েছিলেন।
করণ খুরানা

26

আপনি যদি gradleপ্লাগইনটির 0.14.0 বা তার বেশি সংস্করণ ব্যবহার করছেন তবে আপনার ফাইলগুলিতে runProguard" minifyEnabled" " " প্রতিস্থাপন করা উচিত build.gradle

শুধু এটি যোগ করুন।

 buildTypes {           
     release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
                }
            }

minifyEnabled falseমানে বিল্ড প্রকারের নামগুলি মূল বা অ্যান্ড্রয়েড টেস্ট (এটি প্লাগইন দ্বারা প্রয়োগ করা হয়) হতে পারে না এবং এগুলি একে অপরের কাছে অনন্য হতে হবে।

অ্যান্ড্রয়েড Gradleপ্লাগইনের নতুন সংস্করণ, অব্যবহৃত সংস্থানগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলতে পারে। এখানে বড় জয়টি হ'ল এটি কেবল আপনার নিজের কোড থেকে অব্যবহৃত সংস্থানগুলি সরিয়ে দেয়, তবে আরও গুরুত্বপূর্ণভাবে আপনি যে লাইব্রেরিগুলি ব্যবহার করছেন তা থেকে (যেমন আপনি যেখানে আপনার অ্যাপ্লিকেশন থেকে ব্যবহার করছেন না এমন বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য সংস্থানীয় সংস্থান রয়েছে)।


আপনার মন্তব্যগুলি পেতে জর্জি অ্যাঞ্জেলভ আনন্দিত। শুভ কোডিং
ইন্টেলিজিজ আমিয়া

25

গ্রেডল 0.14.4 হিসাবে , এই ত্রুটিগুলি সংকলন-সময় ত্রুটি হিসাবে প্রতিবেদন করা হয়েছে।

সুতরাং আপনি runProguard false/trueসঙ্গে প্রতিস্থাপন করতে হবেminifyEnabled false/true

পরিবর্তনগুলি অ্যান্ড্রয়েড বিকাশকারী ব্লগে তালিকাভুক্ত করা হয়েছে ।


21

গ্রেডেল প্রকল্পগুলি 1.0.0 সংস্করণে স্থানান্তরিত করার জন্য কিছু সহজ নামকরণের কাজ দরকার, এখানে সমস্ত কিছু বর্ণিত হয়েছে: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

অগ্রগতির জন্য আপনি কেবল 'runProguard' => 'মিনিফাইনেবল' নাম পরিবর্তন করতে পারেন, অন্যদের জন্য নীচে দেখুন:

Renamed Properties in BuildTypes:    
runProguard => minifyEnabled
zipAlign => zipAlignEnabled
jniDebugBuild => jniDebuggable
renderscriptDebug => renderscriptDebuggable

Renamed Properties in ProductFlavors:    
flavorGroups => flavorDimensions
packageName => applicationId
testPackageName => testApplicationId
renderscriptSupportMode => renderscriptSupportModeEnabled
ProductFlavor.renderscriptNdkMode => renderscriptNdkModeEnabled
Other Name changes

InstrumentTest was renamed to androidTest.

আমি উভয়ই অ্যান্ড্রয়েড ডক্সের পাশাপাশি তাদের হাইলাইট করার জন্য প্রশংসা করি, তবে জিপআলাইন থেকে এগিয়ে যাওয়া সমস্ত কিছুই আপনি কোথায় পাবেন? কোন ফাইলগুলিতে এটি পাওয়া যাবে তা উল্লেখ করার জন্য অবহেলা রয়েছে। আমি এগুলি আমার মূল গ্রেডল কনফিগারেশন ফাইলে দেখতে পাচ্ছি না।
ব্যবহারকারী 919426

3

গ্রেড অ্যান্ড্রয়েড সরঞ্জামগুলি 0.14.3 এ আপডেট করার কারণে এটি। আপনার ফাইলটিতে "build.gradle" প্রতিস্থাপন করুন

classpath 'com.android.tools.build:gradle:0.14.+'

দ্বারা:

classpath 'com.android.tools.build:gradle:0.14.2'

যতক্ষণ না তারা এটিকে ঠিক করে দেয় ...


1

গ্রেডলের 0.14.0 সংস্করণ (2014/10/31) এ মিনিপ্রেইনড করার জন্য রানপ্রগার্ডের নাম পরিবর্তন করা হয়েছে ।

এটি ঠিক করার জন্য, আপনার প্রকল্পের বিল্ড.ড্রেডল ফাইলটিতে মিনিফাইনেবল করতে রানপ্রগার্ডটি পরিবর্তন করতে হবে ।

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.