11

Android SDK をインストールしましたが、AVD と SDK Manager が実行されないため、使用できません。どちらかを開こうとすると、コマンド プロンプト ウィンドウが約 0.5 秒間ポップアップしてから閉じます。コマンドプロンプトからexeを実行して、エラーメッセージが表示されたかどうかを確認しましたが、出力がなく、同じように動作します。問題を調査したところ、まったく同じことが他のコンピューターでも発生することがわかりました。そこに投稿されたいくつかのソリューションを試しました:

うまくいかなかった解決策

  • PATH環境変数の先頭に JDK の場所を追加する
  • Android SDK の場所をPATH環境変数に追加する
  • 管理者としてアプリケーションを実行する
  • ユーザー ( ) ディレクトリ.androidからフォルダを削除するC:/Users/[User Name]
  • C:Program Files ではなく、ドライブのルートにインストールする

OS 情報: Windows 7 Home Premium、管理者権限


アップデート

問題の原因を見つけたと思いますが、まだ修正方法がわかりません。問題はandroid.bat、ディレクトリ内のファイルにあるようC:\Android\android-sdk\toolsです。呼び出しを試みますfind_java.batが、小さな構文上の問題のために呼び出しできません。これは出力です:


「C:\Android\ANDROI~1\tools\lib\find_java.exe -s」は、内部または外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。

エラー: 適切な Java が見つかりません。Android 開発者ツールを適切に使用するには、適切なバージョンの Java JDK がシステムにインストールされている必要があります。http://www.oracle.com/technetwork/java/javase/downloadsから入手できる JavaSE の JDK バージョンをインストールすることをお勧めします 。

Android SDK の完全な要件は、http: //developer.android.com/sdk/requirements.htmlで確認できます。


にいくつかの変更を加えた後android.bat、 を呼び出すことができましたがfind_java.bat、何をしてもエラーが発生しました。とうとうイライラして、 の場所にハードコードすることにしましたjava.exe。後でバッチ ファイルに別のエラーがありました。インストールまたはバッチ ファイルに何か問題があるのではないかと考え始めています。これはバッチ ファイルです ( android.bat)。

@echo off
rem Copyright (C) 2007 The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem      http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

rem Useful links:
rem Command-line reference:
rem   http://technet.microsoft.com/en-us/library/bb490890.aspx

rem don't modify the caller's environment
setlocal

rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0

rem Grab current directory before we change it
set work_dir="%cd%"

rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0


rem Check we have a valid Java.exe in the path.
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

set jar_path=lib\sdkmanager.jar;lib\swtmenubar.jar

rem Set SWT.Jar path based on current architecture (x86 or x86_64)
for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set swt_path=lib\%%a

:MkTempCopy
    rem Copy android.bat and its required libs to a temp dir.
    rem This avoids locking the tool dir in case the user is trying to update it.

    set tmp_dir=%TEMP%\temp-android-tool
    xcopy %swt_path% %tmp_dir%\%swt_path% /I /E /C /G /R /Y /Q > nul
    copy /B /D /Y lib\androidprefs.jar   %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\org.eclipse.*      %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\sdk*               %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\common.jar         %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-compress*  %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\swtmenubar.jar     %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-logging*   %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\commons-codec*     %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\httpclient*        %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\httpcore*          %tmp_dir%\lib\        > nul
    copy /B /D /Y lib\httpmime*          %tmp_dir%\lib\        > nul

    rem jar_path and swt_path are relative to PWD so we don't need to adjust them, just change dirs.
    set tools_dir=%cd%
    cd /d %tmp_dir%

:EndTempCopy

rem The global ANDROID_SWT always override the SWT.Jar path
if defined ANDROID_SWT set swt_path=%ANDROID_SWT%

if exist %swt_path% goto SetPath
    echo ERROR: SWT folder '%swt_path%' does not exist.
    echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
    goto :EOF

:SetPath
rem Finally exec the java program and end here.
REM set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
call %java_exe% %REMOTE_DEBUG% -Dcom.android.sdkmanager.toolsdir="%tools_dir%" -Dcom.android.sdkmanager.workdir=%work_dir% -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*

rem EOF

更新(再度)

virtualbox で実行されている WinXP に Android SDK をインストールしたところ、完全に動作しました。ただし、Win7でも使用できるようにしたいと思います。

4

13 に答える 13

5

JDK の新しい x64 バージョンをインストールしたところ、問題が解決しました

于 2012-12-01T10:04:46.187 に答える
3

64ビットJDKの新規インストールを使用して、64ビットwin 7 proの新規インストールでこの問題が発生しました。

この投稿のケントン・プライスのソリューションは私を修正し、今ではすべて完全に機能しています.

Android SDK のインストールで JDK が見つからない

なんらかの理由で、私のシステムの (もともと Linux で開発された) ADK には、Windows スタイルのバックスラッシュではなく、Linux スタイルのスラッシュで定義された JAVA_HOME が必要でした。

于 2012-06-13T23:38:26.133 に答える
2

Rajesh が上記のコメントから見つけたのと同じ問題を見つけました。この行の括弧内のコマンドは実行されていませんでした

for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

編集: 一部の人々は次の行を持っているかもしれません: for /f "delims=" %%a in ('"%~dps0find_java%arch_ext%.exe" -s') do set java_exe=%%a

この行は、sdkfind_java.batのディレクトリにあります。tools\lib\

私は Win 7 x64 システムを使用しており、OS 全体をリロードするつもりはないので、MZB が上記の投稿から提案した内容をハードコーディングしました。

この行の後:

for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

編集: またはこの行:

for /f "delims=" %%a in ('"%~dps0find_java%arch_ext%.exe" -s') do set java_exe=%%a

この行を追加しました:

set java_exe=%JAVA_HOME%\bin\java.exe

これは、JAVA_HOME 環境変数が Java JDK フォルダー (なし\bin)に設定されていることを前提としています。

JAVA_HOME 変数に が含まれている場合は、次の\binように設定します。

set java_exe=%JAVA_HOME%\java.exe

JAVA_HOME 環境が設定されていない場合は、MZB が投稿で行ったように、マシン上にある実際のパスでハード コードする必要があります。

私も javaw ロジックのためにそれをしました:

set javaw_exe=%JAVA_HOME%\bin\javaw.exe

ようやく SDK Manager にアクセスできます。


2015 年 6 月 1 日更新:

私が投稿した後にこの投稿を更新してくれた Ken YN へ:

この投稿を作成したとき、次の行を参照しました。

for /f "delims=" %%a in ('"%~dps0find_java%arch_ext%.exe" -s') do set java_exe=%%a

これは、フォルダー ...\sdk\tools\lib の現在の find_java.bat にあります。これは、Android Studio Windows x64 バージョン (android-studio-bundle-141.1903250-windows.exe) の現在のバージョンから昨日更新したばかりです。変数 %arch_ext% には、使用しているシステムに応じて 32 または 64 が含まれます。

しかし、上記の行がどのように変換されたのかわかりません:

for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

Ken YN が編集を行った後。

しかし、おそらく find_java.bat ファイルにあなたのバージョンを持っている人もいますが、私のように他のバージョンを持っている人もいると思います。SDK Manager を開くことができないという問題を抱えている人のために、これを指摘しているだけです。

さらに、JDK1.7 と JDK1.8 の両方でこの問題が発生したことに言及する必要があります。もともとJDK1.8をインストールしていたのですが、昨日Android Studioの要件を読んだらJDK1.7が必要と書いてあったので、昨晩JDK1.7をインストールすれば解決するだろうと思ってインストールしましたが、find_java.batの問題は同じでしたいずれかのバージョンの JDK を使用します。

また、両方のバージョンの JDK を使用して Android Studio をインストールした場合、Android Studio を初めて開く前に SDK Manager にアクセスできました。しかし、Android Studio を開くと、最初に SDK Manager の更新が開始され、IDEA プロジェクトを起動した後、SDK Manager を開けなくなったため、問題が発生した可能性があります。

そのため、Android Studio を初めて開く前に、find_java.bat に次の行が含まれている可能性があります。

for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

そして、Adroid Studio が SDK を更新すると、この行が表示されますか?

for /f "delims=" %%a in ('"%~dps0find_java%arch_ext%.exe" -s') do set java_exe=%%a

それをテストする時間がありません。SDK にアクセスする方法を見つけようとして、すでに多くの時間を失いました。他の誰かが同じ問題を抱えている場合、これを確認できるかもしれません。

于 2015-06-01T06:14:53.460 に答える
1

lopsided98 と同様の問題に遭遇し、ここでもすべての解決策を試しましたが、結果はありませんでした。次に、最初にAndroidスタジオを起動する前に、Javaを見つけるために環境変数を追加する必要があることを思い出したので、新しいシステム変数を追加して、Android_homeそれをAndroidフォルダーに向けましたC:\Program Files (x86)\Android。Javaをセットアップしたときと同じように、問題なく起動しました。SDKマネージャーも稼働中です。まだ問題がある場合は、これが役立つことを願っています

これは、Java 部分をセットアップするときに見つけたもので、Android でも試してみようと思いました。

一部の Windows システムでは、ランチャー スクリプトは Java がインストールされている場所を検出しません。この問題が発生した場合は、正しい場所を示す環境変数を設定する必要があります。

[スタート] メニュー > [コンピューター] > [システムのプロパティ] > [システムの詳細プロパティ] を選択します。

次に、JDKフォルダーを指す新しいシステム変数を開いAdvanced tab > Environment Variablesて追加JAVA_HOMEします。たとえば、

C:\Program Files\Java\jdk1.7.0_21.

于 2014-02-20T04:24:10.467 に答える
1

Android SDKマネージャーを開くことができない同じ問題もありましたが、ユーザー(C:/ユーザー/ [ユーザー名])ディレクトリから.androidフォルダーを削除すると機能します...

ありがとう

于 2013-02-06T07:09:39.323 に答える
0

\tools\lib\find_java.bat が java.exe および javaw.exe 実行可能ファイルの場所を正しく特定できないという問題がある可能性があります。

ここでの回避策: http://www.gmansoft.com/android-sdk-manager-find-Java-problem/ は私にとってはうまくいきました。android.bat の問題を「修正」しても、他のバッチ ファイルは引き続き破損することに注意してください。

上記のリンクが壊れた場合の回避策は、find_java.bat の結果を配線して、Java 実行可能ファイルの実際の場所を返すことです。たとえば、次のように編集します。

rem Check we have a valid Java.exe in the path. The return code will
rem be 0 if the command worked or 1 if the exec failed (program not found).
rem for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s') do set java_exe=%%a
set java_exe=c:\program files\Java\jdk1.8.0_25\bin\java.exe
if not defined java_exe goto :CheckFailed

:SearchJavaW
rem Check if we can find a javaw.exe at the same location than java.exe.
rem If that doesn't work, just fall back on the java.exe we just found.
rem for /f "delims=" %%a in ('"%~dps0\find_java%arch_ext%.exe" -s -w') do set javaw_exe=%%a
set javaw_exe=c:\program files\Java\jdk1.8.0_25\bin\javaw.exe
if not exist "%javaw_exe%" set javaw_exe=%java_exe%
goto :EOF
于 2014-12-09T22:28:35.540 に答える
0

私はこの問題を抱えていて、問題はこれであることが判明しました:

D:\dev\adt-bundle-windows-x86_64-20130522\sdk>"tools\lib\find_java.exe"
C:\Windows\system32\java.exe

何年も前に、プログラムがJavaを見つけてそれをsystem32ディレクトリにコピーして「解決」するという問題があったことを漠然と思い出します。

これらのファイルを削除したところ、次のようになりました。

D:\dev\adt-bundle-windows-x86_64-20130522\sdk>"tools\lib\find_java.exe"
C:\Program Files\Java\jre7\bin\java.exe

および SDK/ADK マネージャーが正しく動作するようになりました。

于 2013-06-17T15:30:31.497 に答える
0

問題が Windows マシンにある場合は、AVD Manager または SDK Manager を管理者として実行してください。

于 2014-03-26T05:39:49.960 に答える
0

.android フォルダーを削除しないでください。Juz は、.android フォルダー内の avd フォルダーを削除します。それはあなたの仕事に多くの良いことをするはずです。

事前の歓声。プラカシュ。

于 2013-02-13T06:26:07.377 に答える