2016-08-26 12 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.デバッグとリリースapkの両方を生成し、私の携帯電話ストレージに転送しました。最初のものがインストールされ、2番目のものはエラー"App not installed" - さらなる情報はありません。これは、どのバージョンを最初にインストールしても同じです。

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

私はあなたのappSuffixがgradleの中で面白いと思うが、あなたが別のアプリケーション名でmanifest.xmlを使用するだけではなく、なぜビルドバリアントを使用しているのだろうか?そのようにして、あなたが午後を知っているのを知ったときには、混乱することはありません。 –

答えて

6

さて、私は何が起こっていたのか理解しました。

私は実際にデバッグバリアント(ビルド>ビルドAPK)のための無署名apkを作成していました。しかし、私は(Build> Generate Signed APK)を使用して、オプションからデバッグバリアントを選択しなければなりませんでした。

enter image description here

私のデバイス上でプロジェクトを実行しているときにも、Gradleのは、符号なしのAPKを生成することになります。それも機能しないでしょう。つまり、this answerで説明したようにSigningConfigsを設定しない限りです。

3

代わり種類を構築使用するのでは、なぜ代わりに、製品のフレーバーを使用しない:それは私がandroidmanifest.xmlの私のランチャーの活動を宣言したどのように役立ちますが、ここにあるかどうかを知りませんか?ここには、これを行う方法と現在実行しようとしていることについてのdocumentationへのリンクがあります。お役に立てれば。

+0

答えは正確ではありませんが、他の誰も反応しなかったと考えて、賞金はすべてあなたのものです。 – ShahiM

+0

@ShahiMはい、私はそれがあなたのソリューションを投稿した後に気づいたが、ありがとう! –

関連する問題