मैंने 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>
क्या आपने अपने 'android: name ="। AppClassDebug "' और लॉन्चर गतिविधि को 'MainActivityDebug' में बदलने का प्रयास किया है? मैं देखता हूं कि आप पैकेज नाम में प्रत्यय जोड़ते हैं, जो ठीक है। –
क्षमा करें मैं पालन नहीं करता। क्या आपका मतलब है कि मेरी लॉन्चर गतिविधि कक्षा का नाम बदलें? यह कैसे मदद करेगा? – ShahiM
मुझे लगता है कि आपका ऐपफिक्स धीरे-धीरे में दिलचस्प है लेकिन यदि आप बिल्ड वेरिएंट का उपयोग कर रहे हैं तो क्यों नहीं एक manifest.xml का उपयोग एक अलग एप्लिकेशन नाम के साथ करें? इस तरह जब आप बिल्ड करते हैं तो पता है कि अपराह्न उलझन में नहीं जा रहा है। –