web-dev-qa-db-ja.com

Android St​​udioに新しい名前で既存のプロジェクトをコピーします

Androidプロジェクトをコピーして、同じファイルから新しいプロジェクトを別の名前で作成したいと思います。これの目的は、アプリストアで広告がサポートされているアプリの2番目のバージョンを使用できるようにすることです。

私はここでこの答えを見つけました:

Android-既存のプロジェクトを新しい名前でコピー

しかし、それはEclipse用です。 Android St​​udioでこれを行うにはどうすればよいですか?

85
Mike

指定したリンクの手順は、Android St​​udioでも機能するはずです。モジュールフォルダー全体のコピーを(ファイルマネージャーを使用して)作成し、新しい名前を付けます。それを開き、Refactor -> Rename(名前を変更したい項目を右クリック)を使用して、モジュールとパッケージの名前を変更します。

IntelliJ/Android Studioでのリファクタリングの詳細については、 this をご覧ください。

64
free3dom

Gradleを使用する場合は、app/build.gradleファイルのapplicationId属性を変更することを忘れないでください。

38
Sergii

free3domが指摘した のように、次のようにする必要があります。

  1. ファイルマネージャーを使用してコピーを作成する
  2. アプリのbuild.gradleファイルを手動で編集して、パッケージ名を変更します(ファイルマネージャーを使用できます)。
  3. AndroidManifest.xmlを手動で編集して、パッケージ名を変更します。
  4. gradle syncを実行します。
  5. Android St​​udioでプロジェクトを開き、パッケージ名をリファクタリングします。
  6. 再びgradle syncを実行します。

それは問題なく動作するようです。

33
Veeru

Android St​​udioの最新バージョンを使用している場合、これを支援することができます。

注:これはAndroid St​​udio 3.0でのみテスト済みです。

手順は次のとおりです。

  1. プロジェクトビュー(これは、画面の左側のキャプチャと構造とともに表示されます)で、Androidの代わりにProjectを選択します。
    プロジェクトの名前は、ツリーの最上部になります(外部ライブラリとともに)。
    プロジェクトを選択し、Refactor -> Copy...に移動します。
    Android Studioは、新しい名前とプロジェクトのコピー先を尋ねます。同じものを提供します。

  2. コピーが完了したら、Android St​​udioで新しいプロジェクトを開きます。
    パッケージは以前のプロジェクト名のままです。
    それは、Javaクラスパッケージ、アプリケーションID、および古いパッケージ名を使用して生成されたその他すべてです。
    それを変更する必要があります。
    プロジェクトビューで、Androidを選択します。
    Javaサブディレクトリを開き、メインパッケージを選択します。
    それを右クリックし、Refactorに移動してからRenameに移動します。
    Android Studioは、リファクタリングしようとしているパッケージに複数のディレクトリが対応しているという警告を表示します。
    Rename packageおよびnotRename directoryをクリックします。
    このステップの後、プロジェクトは完全に新しい名前になります。

  3. Res/values/strings.xmlファイルを開き、プロジェクトの名前を変更します。
  4. 「Gradle Build Module:app」でアプリケーションIDを変更することを忘れないでください。
  5. 最後の手順は、プロジェクトをクリーンアップして再構築することです。そうしないと、プロジェクトを実行しようとするとAndroid St​​udioがAPKをインストールできないことを通知します(前のプロジェクトを実行した場合)。
    だからBuild -> Clean project、次にBuild -> Rebuild project
    これで、新しいクローンプロジェクトを実行できます。
23
nt.bas

これの目的は、アプリストアで広告がサポートされているアプリの2番目のバージョンを使用できるようにすることです。

現在、それを行うための最良の方法はコピーなしプロジェクトです。
build.gradleファイルで異なるフレーバーを使用して実行できます。

 productFlavors {
        flavor1 {
            applicationId = "com.example.my.pkg.flavor1"
        }
        flavorAdSUpport {
            applicationId = "com.example.my.pkg.flavor2"
        }
  }

この方法では、ファイルのコピーのみがあり、違いを簡単に処理できます。

14

私はこれらの手順に従っていますが、これまでのところ機能しています:

  1. 使用するフォルダをコピーして貼り付けます。
  2. Android St​​udio(v3.0.1)を開きます。
  3. [既存のプロジェクトを開く]を選択します。
  4. 「Gradleプロジェクトのインポート」というタイトルでポップアップ表示されるメッセージを閉じます。
  5. 左側のAndroidタブに移動します:アプリ-> Java->最初のフォルダー(プロジェクトフォルダー)を選択します
  6. リファクタリング=>名前の変更...(Shift + F6)
  7. パッケージの名前を変更し、両方のオプションを選択-新しいフォルダーの名前を小文字にします。
  8. リファクタリングを行う
  9. 選択:ツールバーのプロジェクトをGradleファイルと同期します。
  10. Build => Clean Project
  11. App-> res-> values-> strings.xmlに移動し、2行目のアプリ名を変更します。
7
Civic

これは、nt.basの回答と、Civicの回答のステップ9と視覚的な例を組み合わせたものです。Android St​​udioを初めて使用するので、何を意図しているかを見つけるのに時間がかかったからです。 Android St​​udio 3.2.1でテスト済みです。

  1. Android St​​udioでクローンを作成するプロジェクトを開きます。 (この例では、古いプロジェクト名はtest5で、新しいプロジェクト名はtest6でした)

  2. 左側のファイル概要ペインで、[プロジェクト](現在Androidと表示されている場所)をクリックします。

fig0

  1. ファイルエクスプローラーペイン内でプロジェクトを右クリックし、[リファクタリング]> [クローン]をクリックします。

fig1

  1. 「新しい名前」を新しいプロジェクト名に変更して、「OK」をクリックします。

fig2

  1. ファイル>開く>新しいウィンドウ>新しいプロジェクトを選択>新しいプロジェクトウィンドウで開きます。新しいウィンドウで、Android studioの最終行が終了するまで、たとえば「Gradle Sync Finished」と表示されるまで待ちます。

16

17

14

  1. ファイル概要ペインで、マウスの右ボタン(RMB)をクリックします:app.Java/ <古いプロジェクト名(テストの名前ではなく、androidTestの名前ではなく、空白の名前)>

fig8

  1. パッケージの新しい名前を入力し、両方のチェックマークを選択して、リファクタリングをクリックします。

fig9fig10

  1. 左下のバーで「リファクタリングを行う」をクリックします。

fig12

  1. App/res/values/strings.xmlを開き、古いプロジェクトの名前(test5など)を次の行のプロジェクトの新しい名前に変更します。

    <string name="app_name">test5</string>
    

fig3

  1. Gradle scripts/build.gradle(Module:app)を開き、行を新しいプロジェクト名と同じ行に変更します:%fig4

    applicationId "com.example.a.test5"    
    

fig4

  1. コードウィンドウの上部に黄色の線が表示され、Gradle Syncが要求されます。 「今すぐ同期」を押します。

fig5

  1. トップバーで、「ビルド」>「プロジェクトのクリーン」を押します。

fig13

  1. 左下に「Gradle build finished」と表示されている場合は、「Build> Rebuild project」をクリックします。

fig14

fig15

  1. これで、プロジェクトを再度コンパイルして実行できるはずです(最初に機能していた場合)。
5
a.t.

Android Developer Fundamentals Course Practicals gitbookの付録には、既存のプロジェクトをコピーして名前を変更する手順が含まれています。

https://google-developer-training.gitbooks.io/Android-developer-fundamentals-course-practicals/content/en/appendix_utilities.html#copy_project

2
Bryon Nicoson

Android St​​udioでパッケージ名をリファクタリングするとき、package/Android/project/etcの右側にある小さな歯車をクリックする必要がある場合があります。パッケージ名の各部分が独自のディレクトリとして。次に、個々のディレクトリに対してリファクタリングを行います。

2
gnyrfta

私はAndroid 3.3を使用していますが、それは私にとってどのように機能したのですか:

1-プロジェクトビューを選択します

2-プロジェクトのルートにあるプロジェクト名を右クリックし、refactor -> copyオプションを選択すると、新しい名前を選択するウィンドウが表示されます。

3-ステップ2の後、Androidは新しいプロジェクトを作成します。新しいプロジェクトを新しい名前で開く必要があります

4-「string.xml」でアプリの名前を変更します。「app/res/values/string.xml」にあります

これで、同じ名前の新しいプロジェクトが作成されました。パッケージの名前を変更したい場合は、次の手順で説明します

(オプション)パッケージの名前を変更するにはmain

5-「app/Java」に移動し、同じ名前の3つのフォルダー、メインフォルダー、(androidTest)および(test)があります。メインフォルダーを右クリックしてformat -> renameを選択します、複数のディレクトリがそのパッケージに対応しているという警告が表示されたら、[パッケージの名前を変更]をクリックします。新しい名前を選択して、リファクタリングをクリックします。ここで、コードビューの下に、リファクタリングのプレビューがあります。[リファクタリングを行う]をクリックします。

6-[ビルド]オプションに移動し、[プロジェクトのクリーン]、[プロジェクトの再ビルド]の順にクリックします。

7-プロジェクトを閉じて、再度開きます。

2

nt.bas answergnyrfta answer から試しましたが、これは私にとってはうまくいきます。

nt.bas answer からの引用:

Android St​​udioの最新バージョンを使用している場合、これを支援することができます。

注:Android St​​udio 3.0のみでこれをテストしました。

手順は次のとおりです。

  1. プロジェクトビュー(これは、画面の左側のキャプチャと構造とともに表示されます)で、Androidの代わりにProjectを選択します。
    プロジェクトの名前は、ツリーの最上部になります(外部ライブラリとともに)。
    プロジェクトを選択し、Refactor -> Copy...に移動します。
    Android Studioは、新しい名前とプロジェクトのコピー先を尋ねます。同じものを提供します。

  2. コピーが完了したら、Android St​​udioで新しいプロジェクトを開きます。
    パッケージは以前のプロジェクト名のままです。
    それは、Javaクラスパッケージ、アプリケーションID、および古いパッケージ名を使用して生成されたその他すべてです。
    それを変更する必要があります。
    プロジェクトビューで、Androidを選択します。
    Javaサブディレクトリを開き、メインパッケージを選択します。
    それを右クリックし、Refactorに移動してからRenameに移動します。
    Android Studioは、リファクタリングしようとしているパッケージに複数のディレクトリが対応しているという警告を表示します。
    Rename packageをクリックし、notRename directoryをクリックします。
    このステップの後、プロジェクトは完全に新しい名前になります。

  3. Res/values/strings.xmlファイルを開き、プロジェクトの名前を変更します。
  4. 最後の手順は、プロジェクトをクリーンアップして再構築することです。そうしないと、プロジェクトを実行しようとするとAndroid St​​udioがAPKをインストールできないことを通知します(前のプロジェクトを実行した場合)。
    だからBuild -> Clean project、次にBuild -> Rebuild project

ここまでは、プロジェクト名全体を変更するだけです。パッケージ名を変更するには、 gnyrfta answer に従う必要があります。

Android St​​udioでパッケージ名をリファクタリングするとき、package/Android/project/etcの右側にある小さな歯車をクリックする必要がある場合があります。パッケージ名の各部分が独自のディレクトリとして。次に、個々のディレクトリに対してリファクタリングを行います。


PS:あなたが持っている場合

セッションの終了に失敗しました:INSTALL_FAILED_INVALID_APK:分割lib_slice_0_apkが複数回定義されました

Appmoduleのビルドフォルダーを削除して、プロジェクトをリビルドするだけです!

これで問題が解決します!

1
Mukyuu

プロジェクトをコピーするときは、C:...\AndroidStudioProjects(project_name)\ app\build\intermediates\classes\release ...ディレクトリから元の残りの中間ビルド(someActivity $ 4.class)ファイルも削除する必要があります。そうしないと、コピーしたプロジェクトをコンパイルしようとすると、新しいプロジェクトのビルドがほぼ確実に失敗します。リファクタリングはこれを解決しません。

1
Mark Rossmiller

プロジェクトがあるソースフォルダーに移動します。

  1. プロジェクトと過去をコピーして、名前を変更します。
  2. Android St​​udioを開き、更新します。
  3. ->Settings.gradleに移動します。
  4. ':your new project name 'を含める
1
Bassem Qoulta

次の問題がありました。

https://google-developer-training.github.io/Android-developer-fundamentals-course-concepts-v2/appendix/appendix-utilities/appendix-utilities.html

Android St​​udioバージョン:3.3.2

.idea/workspace.xmlファイルを削除するまで。

$ cp -rv Testcopysource/ TestCopyDest
$ rm TestCopyDest/.idea/workspace.xml
$ stdio.sh & # Run Android Studio on Linux

その前に、Android St​​udioは元のソースフォルダーをポイントし、すべての名前変更は元のソースファイルに適用されました(上記の例のTestcopysource内)。

0
daveb