web-dev-qa-db-ja.com

エラー:Windowsでのファイルパスが長すぎます。240文字未満にしてください

したがって、build.gradle(app)ファイルにいくつかの変更を加え、Android studioでこのエラーが表示されます(見やすくするために新しいタブで画像を開きます): Error description from Logcat

私のbuild.gradle(app)ファイル(これは編集されたファイルではありません。コードの新しい行を削除しましたが、まだ運/解決策はありません。): Build.gradle

Build.gradle(app)ファイルにいくつかの変更を加えるまで、すべてが順調に機能していましたが、それらの新しいコード行を削除しましたが、Android studioは引き続きエラーを発生させます。エラーはcompile 'com.google.Android.gms:play-services:8.3.0'に関連しています。指定されたフォルダ内のこれらのPNG画像を削除/名前変更しようとしましたが、プロジェクトを再構築すると、PNG画像が自動的にダウンロードされます。私のbuild.gradle(project)ファイルにはclasspath 'com.Android.tools.build:gradle:1.5.0'が含まれています。このエラーの原因と修正方法を知りたいですか?どうもありがとう。

66
Neel0507

私はちょうど同じ問題に遭遇しました。正確な問題の修正方法はわかりませんが、回避策が見つかりました。プロジェクトには深いファイルパス階層があります。プロジェクトを下位レベルから上に移動してみませんか?

例:C:\Projects\YourProject

これで問題は解決しました。

101
Vladimir Dimov

パスの問題のほとんどが発生する場所であるため、プロジェクトのビルドディレクトリを変更することもできます。ルートbuild.gradleファイル内

allprojects {
    buildDir = "C:/tmp/${rootProject.name}/${project.name}"
    repositories {
       ...
    }
}

Android Studioは変更を認識し、プロジェクトビューに新しいビルドの場所を表示します。プロジェクト全体を移動するよりもはるかに簡単です。

編集

Windows 10 Insider Previewでは、長いファイルパスの制限を許可する機能が提供されるようになりましたが、現在、これらの制限は実際には、長いファイルパスのサポートを特に有効にしているアプリにのみアクセスできます。

現時点では、拡張パスが有効になっているこれらのアプリケーションは、Windowsストア経由でインストールされたアプリケーションのみのように見えます。

現時点では、Gradleはこのオプションを有効にして、拡張NTFSファイルパス長を利用することはできません。

165
lodlock

問題の原因: 'C:\ users ...\commom_google_signin_btn_text_dark_normal.9.png'アイコンのパスの長さが240文字を超えていますWindows OSの最大ファイルパス長制限

解決策は:プロジェクトを「C:\ your_project」のような最上位ディレクトリに移動するか、プロジェクト名の長さを短くします。

Windowsパス制限チャート enter image description here

11

プロジェクトを実際に移動する非常に堅実な代替手段として、ハードリンクを使用することをお勧めします。その構文は次のようになります

mklink /J C:\AndroidProjects\ProjectName C:\MyVeryVeryVeryVery…VeryVeryVeryLongPath\ProjectName

これで、C:\ AndroidProjects\ProjectNameでプロジェクトを操作し、プロジェクトのあるべき場所に変更を加えることができます。

ウラジミール・ディモフの答えに同意します。 Windowsではファイルパスが240文字未満であることが記載されているため、プロジェクトの短いパスを選択する必要があります。このリンクは私を助けます: http://www.feelzdroid.com/2016/01/Android-studio-error-file-path-too-long-windows.html

2
Aakanksha

プロジェクトのパスを短くすることは、実際にはちょっとしたハックです。IvanNeesonの応答は、前進の道のようです。

Android St​​udioを使用できるほど幸運である場合、ファイルの長さに関する有用なエラーメッセージが表示されます。ただし、コマンドラインionic buildを実行しても同じ問題が発生した場合は、PNGファイルで何らかのクランチエラーが発生しているかどうかがわかります。

本当の問題は、common_google_signin_btn_text_light_normal_background.9.pngなどの贅沢なファイル名を持つGoogle Play Servicesであり、これはWindowsに対応していないだけです。 Androidビルド内にダンプし、コントロール外でplatform\Android\build\intermediates\exploded-aar\com.google.Android.gms\play-services-base\10.2.1 \へのパスが爆発しますres\drawable-xhdpi-v4\common_google_signin_btn_text_light_normal_background.9.png

2
AlgebraWinter

Lodockの答えの追加として、同じ名前のプロジェクトがたくさんある場合は、プロジェクトパスでハッシュを使用できます。

import Java.security.MessageDigest

def hashString(String s){
    MessageDigest.getInstance("SHA1").digest(s.bytes).encodeHex().toString()
}

allprojects {
    buildDir = "C:/AB/${hashString(projectDir.getAbsolutePath())}"
}
2
Ivan Neeson

たとえば、プロジェクトディレクトリをできる限り深く保持する必要があります。-D:/ AndroidWorkSpace/ProjectName

Android St​​udioは240文字のプロジェクトパスのみをサポートするため

ありがとう

1
Ali Abhas

これを見てください http://feelzdroid.com/2016/01/Android-studio-error-file-path-too-long-windows.html 解決策は単純すぎて、フォルダーのパスを240文字未満に保ちます。

パスに240個未満のチャーターがあることを確認してください

1
Naruto

私はこの問題について別の経験をしました。最初にこのエラーが発生しましたが、同じディレクトリ内の以前のプロジェクトが開いていることに気付きました。これがパスです:

C:\ Users\koralis\Documents\extraction\Ex_Files_Android_App_Dev_LDS_Upd\Exercise Files\Ch01\01_06\ImageAssets

驚いたことに、そのgradleバージョンを「com.Android.tools.build:gradle:2.0.0」から「com.Android.tools.build:gradle:3.2.1」に更新しました

これで私の問題が解決しました。

0
David Enoma

私は同じ問題に直面していました、私のプロジェクトはCドライブにあり、それはより深いパスの場所にあります、私がプロジェクトを他のより低い深いパスの場所に移動しただけで動作します、あなたはプロジェクトの場所を変更するだけで深い場所の階層で。

Windowsユーザーの場合:

プロジェクトのルートフォルダーにネットワーク共有を作成して、そこにマップしたいと思うかもしれません。この手法はパス全体の長さを短縮しますが、変更されたファイルを検出するのが難しいため、Android St​​udioで問題が発生します。より良い解決策は、windows substコマンドを使用することです。問題を回避するためのスクリプトの例を次に示します。必要に応じて名前を微調整し、プロジェクトを指すように変更して、ディレクトリをインストールします。

ファイル:launchAS.cmd

subst P: "C:\private\Java42\ide\42g\workspaces\AndroidStudioProjects"
cd "C:\private\Java42\programs\Android-studio-base\bin"
start studio64.exe

上記のコマンドは、P:ドライブを作成し、プロジェクトルートフォルダーにマップします。これにより、プロジェクトファイルへの全体的なパスの長さが短くなり、パス名が長すぎる問題を軽減できます。プロジェクトを開くときに長いルート名を使用したように、P:\を使用します。

マッピングを削除するには、次のコマンドを使用します。subst P:/ d

0
Java42

私は同じように2つの繰り返しフォルダがあるときにこの問題を見つけました、

E:\project-one\project-one

そして、そのようなフォルダ名の長さが長い場合、

E:\project-one-with-very-big-name

この問題を回避するには、プロジェクトのフォルダーをシンプルかつ短くします。

0
Krunal Kapadiya

NTFSジャンクションポイントを使用して、プロジェクトへの短いパスを作成できます。ジャンクションの詳細については、こちらをお読みください。 ハードリンクとジャンクション

ジャンクション(ソフトリンクとも呼ばれます)は、参照するストレージオブジェクトが個別のディレクトリであるという点でハードリンクと異なり、ジャンクションは同じコンピューター上の異なるローカルボリュームにあるディレクトリをリンクできます。それ以外の場合、ジャンクションはハードリンクと同じように動作します

0
Fred