2017-08-09 5 views
1

私は数年間Eclipseに構築していたAndroidアプリケーションをAndroidスタジオに移植しました(私はAndroidスタジオとGradleを初めて使用していますので、私の無知を許してください)。私はそれを成功裏に移植しているとアプリが起動して実行のAndroid Studioのですが、今のカップルより多くの障害を克服する必要があります。Eclipseからの移植とAndroidライブラリのアップグレード

  1. 私は非推奨メソッドをアップグレードしても、サポートライブラリの最新バージョンに移動したいです、 GoogleサービスとGSon(必要に応じてGSonをアップグレードせずに暮らすことができると思います)。

  2. 問題を複雑にするために、私たちはソースコードを取り、いくつかのかなり複雑な置換えで、アプリケーションの多数の白いラベルのインスタンスを生成するAntベースのビルドを持っています。私はそれを維持するつもりです - 私はGradleにそれがまだ(そしてGradleがそれを扱うことができるかどうかわからない)したくありません。

だから、最初にそれが依存関係を次のしているように、ポートによって生成された私のGradleのようになります。

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 23 
    buildToolsVersion "25.0.2" 

    defaultConfig { 
      applicationId "com.mydomain.myapp" 
      minSdkVersion 14 
      targetSdkVersion 23 
      compileOptions { 
       sourceCompatibility JavaVersion.VERSION_1_7 
       targetCompatibility JavaVersion.VERSION_1_7 
      } 
     } 

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

    dependencies { 
     compile 'com.android.support:support-v4:23.4.0' 
     compile 'com.google.code.gson:gson:2.2.4' 
     compile 'com.google.android.gms:play-services:+' 
     [....other dependencies that don't matter here....] 
    } 

私の質問です:私はまだここにこれらのlibsのアップグレードバージョンを持っている必要がありますかありませんこれは、Androidスタジオを実行するための追加のGradle経由で行われますか?リストされているようなlib依存関係でなければ、Antビルドを作成したらどのようにこれらのアップグレードを選ぶことができますか?私は、生成されたソースコード構造がEclipseとは異なると思うという点でさらに複雑ですが、それに応じてAntビルドを調整できると思います。

は、私はこれらを読んでいると、便利ながら、実際にはかなり私の質問に答えていません。

Android white labeling

Android App White Labeling

感謝を!


UPDATE

ので遊んでのLOT後、私は最終的にモジュールとライブラリをアップグレードして、それが明らかに(私は多くのテストを行う必要があります)取り組んでいます。いつでも将来誰かを救うかどうかは分かりませんが、鍵は次のように見えます。

  1. compileSdkVersionとbuildToolsVersionのバージョンにマッチします。
  2. com.android.support:supportとコンパイルとツールのバージョンを可能な限り一致させてください。
  3. サポートライブラリでは、minSDKバージョンの直下のバージョンを選択してください(私の場合は14で、v13を選択しました)。私はそれが間違っているかもしれませんが、それが私のために働いているのです。
  4. どのモジュールとどのバージョンのモジュールを持ち込み、互換性があるかに注意してください。このツールは警告をうながしましたが、プレイサービス全体を導入する場合は、私の非互換性がどこから来ているのかという理由から、その部分を引き出すことをお勧めします。これは今のようなものです:

    apply plugin: 'com.android。アプリケーションの アンドロイド{ compileSdkVersion 25 buildToolsVersion '25 0.2' に混乱するために全体のサポートライブラリを見つけ、誰と混乱のために

    defaultConfig { 
        applicationId "com.mydomain.myapp" 
        minSdkVersion 14 
        targetSdkVersion 23 
        compileOptions { 
         sourceCompatibility JavaVersion.VERSION_1_7 
         targetCompatibility JavaVersion.VERSION_1_7 
        } 
    } 
    
    buildTypes { 
        release { 
         minifyEnabled false 
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
        } 
    } 
    } 
    
    dependencies { 
        compile 'com.google.android.gms:play-services-maps:11.0.4' 
        compile 'com.android.support:support-v13:25.3.1' 
        compile 'com.google.code.gson:gson:2.7' 
    } 
    

(なぜ誰もがそれを思うだろう?)このブログました非常に参考:

http://martiancraft.com/blog/2015/06/android-support-library/

も感謝ガブリエレMariottiに正しい方向に私を指しているため。別の質問でホワイトレーベルの変換をGradleに取り上げます。私はこれがすべて間違っている場合にチャイムしてください...私はこれがすべて非常に混乱していることを認める最初になります!

答えて

1

質問:私はまだこれらのライブラリのアップグレードバージョンを持っている必要がありますか、これはAndroidスタジオを実行するためのGradle追加を介して行われますか?最新バージョンを使用して

compile 'com.android.support:support-v4:23.4.0' 
compile 'com.google.android.gms:play-services:+' 
  • このように、あなたが同じを複製することはできませんので、常に良いアイデア

  • であるあなたは、あなたの依存関係にワイルドカード+を使用しないでください異なる時間にビルドする(時間が変わるため)。

  • 同じバージョンのサポートライブラリを使用してください。 gmsライブラリは、サポート-v4との依存関係があり、同じバージョンを使用する必要があります。

  • すべてのgmsモジュールを持つことはお勧めできません(com.google.android.gms:play-services)必要なモジュールのみを追加できます。 LIBの依存関係によって

そうでない場合は記載されているとして、どのように私はそれらを作るたら、Antのビルドがこれらのアップグレードを選ぶことができますか?

あまり簡単ではありません。私の意見では、あなたのantスクリプトをgradleで変換するべきです。それはより簡単だろう。

+0

ありがとうございました。特定のパッケージがサービスモジュールを再生するのを試みましたが、必要なものを特定する問題に遭遇しました。私はメカニズム全体がかなり混乱していることを知っています - コンパイル、ビルド、ターゲット、ライブラリのバージョンを整列しようとするのはちょっと複雑です。私はそれがすべて働いているときに私の質問を更新します。助けを感謝します! –

関連する問題