2013-05-18 11 views
13

Android SDKツールのバージョン21を持っている友人と確認しましたが、apkbuilderがあります。 Android SDKツールをバージョン22に更新しましたが、apkbuilderが見つかりません。私はrevにAndroid SDKを更新しました。昨日22日にツールにapkbuilderがありません

Andorid SDKツールは、apkbuilderを何か別のものに置き換えているようですね。 apkbuilderなしでant build.xmlを作成するにはどうすればよいですか? Android用の署名されていないapkを構築する他の方法はありますか?

答えて

9

thisをご覧ください。

改訂版SDKツールに更新した後、最初に22を追加すると、 はAndroid SDKマネージャを再起動し、新しいアイテムをインストールする必要があります: Android SDKビルドツールenter image description here

これをインストールしたら、プロジェクトをクリーニングして再構築します。 rev.22状態のため

+7

あなたがチェックしましたか?ビルドツールにはapkbuilderは含まれていません。 – Kromster

+2

私はこれを行いました。そして、build.xmlが存在し、代わりにapkbuilderのツールを探したいのです.SDKツールver.22がapkbuilderなしでapkをビルドする方法は? –

+0

また、 "android update project -p"を実行します。あなたのプロジェクトディレクトリにあります。これにより、build.xmlが更新されます。 –

2

のAndroid SDKの注意:

は、既存のプラットフォーム・ツール・コンポーネントに基づく新しいビルドツールSDK コンポーネントを、追加することにより、SDKの構造を変更しました。 この変更により、ビルドツールのバージョンとIDEのバージョンである が切り離され、IDEの更新を必要とせずにツールを更新できます。

一時的なオプションの1つは、apkbuilderが存在するrev.21にSDKツールをロールバックすることです。ツールフォルダをバックアップする(例:tools_22に名前を変更する)、rev.21:dl-ssl.google.com/android/repository/tools_r20-windows.zipから以前のツールをダウンロードして、SDKにアンパックすると前と同じように動作します。

+0

THX.新しいバージョンのツールに合わせてbuild.xmlを編集する方法を見つけたいですか?それとも、Builderをgraleまたはsthに変更する必要がありますか? –

+0

私のsdkツールverison 21をロールバックしない場合は、実際にはツール22でapkを構築する方法を知りたいのですが?sugest way? –

+0

私はこの解決策のみを知っています。おそらく他の誰かがrev.22の周りのより良い方法を知っているかもしれません。 – Kromster

0

私は方法を見つけるが、私はそれについてはよく分からない。私はtoolsディレクトリのantディレクトリを見て、build.xmlにapkをビルドする新しい方法が含まれていることがわかりました。私はtools/libディレクトリのant_task.jarも見ました。私はjarファイルを解凍すると、Apk ApkBuilderTask.class CheckEnvTask.classなどのいくつかのクラスを作成します。そう、私は方法がapkをantとビルドするように変更されると思いますタスク、私はAPKを構築するためにテンプレートを使用しようとし、それが動作すれば私はここに解決策を投稿します。感謝! ありがとう!

+0

新しい方法を使用するが、 "android update project -p"を実行するように、あなたのプロジェクトbuild.xmlを再作成することができます。あなたのプロジェクトディレクトリにあります。 –

5

apkbuilder.batをpath_to_sdk_home/tools /にコピーして、ビルドを続けることができます。 コピー​​が見つかりました。

+0

これは私のためにそれを解決しました、ありがとう! –

1

APKBuilder.batは廃止されましたが、引き続き使用できますが、今後サポート/拡張されなくなる可能性があります。 [1]

新しいcom.android.sdklib.build.APKBuilder Javaクラスは、これから開発される予定であるため、[2]として使用する必要があります。

+0

バットへのリンクについてliuyongの答えを参照してください。 –

+0

実際には、スクリプトが削除されたように見えます。今のところ、古いバージョンを使用するのは、Javaクラスの一部としてコマンドラインインターフェイスがまだ存在するためですが、それもうまくいけば驚くことはありません。 – miracle2k

4

旧バージョンのAndroidSDKでは、apkbuilderはシェルと似ていますが、実際には $ {sdk.dir}/tools/lib/sdklibを呼び出します。 $ {SDK:アリ から

  1. アリ延長の下libがあります:あなたは深いapkbuilderのルートに、あなたはファインダーことができれば、それを呼び出すための2つの方法がありますが、そう

    をjarファイル.dir}だから、 /tools/lib/ant-tasks.jar、あなたはこのようにそれを呼び出すことができますスクリプトや他の開発 あなたは$ {sdk.dirを使用することができます} /ツール/ libのため

    <path id="android.antlibs"> 
        <pathelement path="${sdk.dir}/tools/lib/ant-tasks.jar" /> 
    </path> 
    
    <!-- Custom tasks --> 
    <taskdef resource="anttasks.properties" classpathref="android.antlibs" /> 
    
    <apkbuilder 
         outfolder="${out.absolute.dir}" 
         resourcefile="${resource.package.file.name}" 
         apkfilepath="${out.packaged.file}" 
         debugpackaging="${build.is.packaging.debug}" 
         debugsigning="${build.is.signing.debug}" 
         verbose="${verbose}" 
         hascode="${manifest.hasCode}" 
         previousBuildType="${build.last.is.packaging.debug}/${build.last.is.signing.debug}" 
         buildType="${build.is.packaging.debug}/${build.is.signing.debug}"> 
        <dex path="${intermediate.dex.file}"/> 
        <sourcefolder path="${source.absolute.dir}"/> 
        <jarfile refid="project.all.jars.path" /> 
        <nativefolder path="${native.libs.absolute.dir}" /> 
        <nativefolder refid="project.library.native.folder.path" /> 
        <extra-jars/> 
    </apkbuilder> 
    
  2. /sdklib.jar、apkbuilder wa sが含ま ファイルの末尾に、以前のバージョンでapkbuild.batを見てみましょう:。

    set jarfile=sdklib.jar 
    set frameworkdir= 
    
    if exist %frameworkdir%%jarfile% goto JarFileOk 
        set frameworkdir=lib\ 
    
    if exist %frameworkdir%%jarfile% goto JarFileOk 
        set frameworkdir=..\framework\ 
    
    :JarFileOk 
    
    set jarpath=%frameworkdir%%jarfile% 
    
    call %java_exe% -classpath %jarpath% com.android.sdklib.build.ApkBuilderMain %* 
    
+0

これはApkBuilderを今すぐ呼び出す方法を説明する唯一の答えです。 –

関連する問題