2016-08-26 8 views
14

मैंने applicationIdSuffix के साथ अपने प्रोजेक्ट में बिल्ड वेरिएंट कॉन्फ़िगर किया है ताकि मैं अपने डिवाइस पर डीबग और रिलीज़ संस्करण दोनों इंस्टॉल कर सकूं। यहाँ मेरी build.gradle (प्रासंगिक भागों) है:उसी डिवाइस पर डीबग और रिलीज़ संस्करण स्थापित नहीं कर सकता

buildTypes { 
     debug { 
      buildConfigField "String", "BASE_URL", '"http://dev.xyz.com"' 

      applicationIdSuffix ".debug" 
     } 
     release { 
      buildConfigField "String", "BASE_URL", '"http://api.xyz.com"' 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

लेकिन जब मैं दोनों स्थापित करने का प्रयास है, यह विफल रहता है। मैंने विभिन्न तरीकों की कोशिश की:

1. डीबग और रिलीज एपीके दोनों उत्पन्न और उन्हें अपने फोन स्टोरेज में स्थानांतरित कर दिया। पहला इंस्टॉल करता है, और दूसरा एक त्रुटि देता है "ऐप इंस्टॉल नहीं किया गया" - कोई और जानकारी नहीं। यह वही है इससे कोई फर्क नहीं पड़ता कि मैं कौन सा संस्करण पहले स्थापित करता हूं। भंडारण से

2. स्थापित डिबग संस्करण, तो प्ले स्टोर से रिलीज़ संस्करण स्थापित करने के लिए कोशिश की, लेकिन Play स्टोर त्रुटि देता है: -505:

नहीं कर सकते एप्लिकेशन त्रुटि कोड स्थापित करें।

3. की दुकान से रिलीज़ संस्करण स्थापित है, और फिर एंड्रॉयड स्टूडियो से परियोजना चल की कोशिश की, और यह मेरा 'रन' लॉग ऑन है:

Launching app 
    $ adb push D:\myPROJECTS\MyApp\app\build\outputs\apk\app-debug.apk /data/local/tmp/com.example.myapp.debug 
    $ adb shell pm install -r "/data/local/tmp/com.example.myapp.debug" 
    java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Ljava_lang_String_2) 
     at android.os.SystemProperties.native_get(Native Method) 
     at android.os.SystemProperties.get(SystemProperties.java:52) 
     at android.os.Environment$UserEnvironment.<init>(Environment.java:123) 
     at android.os.Environment.initForCurrentUser(Environment.java:98) 
     at android.os.Environment.<clinit>(Environment.java:92) 
     at android.os.Environment.getLegacyExternalStorageDirectory(Environment.java:597) 
     at android.os.Debug.<clinit>(Debug.java:103) 
     at android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.java:164) 
     at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:91) 
     at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171) 
    java.lang.UnsatisfiedLinkError: android.os.Debug 
     at android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.java:176) 
     at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:93) 
     at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171) 
    java.lang.UnsatisfiedLinkError: android.os.Debug 
     at android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.java:187) 
     at android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.java:88) 
     at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171) 
    Aborted 

    $ adb shell am start -n "com.example.myapp.debug/com.example.myapp.LoginActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
    Error while executing: am start -n "com.example.myapp.debug/com.example.myapp.LoginActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.myapp.debug/com.example.myapp.LoginActivity } 
    Error type 3 
    Error: Activity class {com.example.myapp.debug/com.example.myapp.LoginActivity} does not exist. 

    Error while Launching activity 

किसी भी विचार क्या चल रहा है?

अद्यतन:

<activity 
    android:name=".LoginActivity" 
    android:label="@string/app_name" 
    android:screenOrientation="portrait" 
    android:theme="@style/AppTheme.Launcher"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
+1

क्या आपने अपने 'android: name ="। AppClassDebug "' और लॉन्चर गतिविधि को 'MainActivityDebug' में बदलने का प्रयास किया है? मैं देखता हूं कि आप पैकेज नाम में प्रत्यय जोड़ते हैं, जो ठीक है। –

+0

क्षमा करें मैं पालन नहीं करता। क्या आपका मतलब है कि मेरी लॉन्चर गतिविधि कक्षा का नाम बदलें? यह कैसे मदद करेगा? – ShahiM

+0

मुझे लगता है कि आपका ऐपफिक्स धीरे-धीरे में दिलचस्प है लेकिन यदि आप बिल्ड वेरिएंट का उपयोग कर रहे हैं तो क्यों नहीं एक manifest.xml का उपयोग एक अलग एप्लिकेशन नाम के साथ करें? इस तरह जब आप बिल्ड करते हैं तो पता है कि अपराह्न उलझन में नहीं जा रहा है। –

उत्तर

6

ठीक है, मुझे पता चला कि क्या हो रहा था।

मैं वास्तव में डीबग संस्करण (बिल्ड> बिल्ड एपीके) के लिए एक हस्ताक्षरित एपीके बना रहा था। लेकिन मुझे उपयोग करना था (बिल्ड> हस्ताक्षर किए गए एपीके जेनरेट करें) और फिर विकल्प से डीबग संस्करण का चयन करें।

enter image description here

इसके अलावा, जब अपने डिवाइस पर परियोजना चल रहा है, Gradle अहस्ताक्षरित APK पैदा की जाएगी। तो वह भी काम नहीं करेगा। यही है - जब तक कि को this answer में समझाया गया है, तब तक मैं कॉन्फ़िगर नहीं करता हूं।

3

इसके बजाय प्रकार का निर्माण का उपयोग कर के, क्यों उत्पाद जायके के बजाय का उपयोग नहीं: अगर यह मदद करता है, लेकिन यहाँ है कि कैसे मैं androidmanifest.xml में मेरे लॉन्चर गतिविधि घोषित नहीं जानते? यह करने के लिए documentation का एक लिंक यहां दिया गया है, साथ ही साथ आप जो करने की कोशिश कर रहे हैं। उम्मीद है की यह मदद करेगा।

+0

बिल्कुल एक उत्तर नहीं है लेकिन किसी और ने जवाब नहीं दिया है, बक्षीस तुम्हारा सब कुछ है। – ShahiM

+0

@ShahiM हां, मुझे एहसास हुआ कि आपके समाधान को पोस्ट करने के बाद, लेकिन धन्यवाद! –

संबंधित मुद्दे