web-dev-qa-db-ja.com

build.xmlとproguardファイルを参照するビルドエラー: "nullが返されました:1"

(Facebook SDKプラグインがインストールされた)PhoneGapアプリをビルドしているときに、次のエラーが発生しました。

ビルドに失敗しましたC:\ adt-bundle-windows-x86_64-20130522\sdk\tools\ant\build.xml:653:この行の実行中に次のエラーが発生しました:C:\ adt-bundle-windows-x86_64-20130522\sdk\tools\ant\build.xml:698:nullが返されました:1

653行目は次のとおりです。

<do-only-if-manifest-hasCode elseText="hasCode = false. Skipp aidl/renderscript/R.Java">

行698は次のとおりです。

proguardFile="${out.absolute.dir}/proguard.txt"

これまでの私の解決策は次のとおりです。

  1. Android update projectを実行して、proguard-project.txtファイルの生成を強制し、local.propertiesおよびproject.propertiesファイルを更新しました。
  2. C:\adt-bundle-windows-x86_64-20130522\sdk\tools\ant\build.xmlを編集してproguard.txtへのすべての言及がproguard-project.txtになるようにしました。
  3. ant -logfile ./antLogFile.txt releaseを実行しました。これがログファイルです。

-set-mode-check:

-set-release-mode:

-release-obfuscation-check:[echo] proguard.configはC:\ adt-bundle-windows-x86_64-20130522\sdk/tools/proguard/proguard-Android.txt:proguard-project.txt [echo] Proguard.config有効になっています

-ビルド前:

-check-env:[checkenv] Android SDKToolsリビジョン22.6.2 [checkenv] C:\ adt-bundle-windows-x86_64-20130522\sdkにインストール

-セットアップ:[echo]プロジェクト名:HelloWorld [gettype]プロジェクトタイプ:アプリケーション

-build-setup:[getbuildtools]最新のビルドツールの使用:19.0.3 [echo] HelloWorldのビルドターゲットを解決しています... [gettarget]プロジェクトターゲット:Android 2.3.3 [gettarget] APIレベル:10 [gettarget]警告:AndroidManifest.xml(14)の属性minSdkVersionがプロジェクトターゲットAPIレベル(10)よりも高い[echo] ---------- [echo]必要に応じて出力ディレクトリを作成します。 .. [echo] ---------- [echo] HelloWorldの依存関係を解決しています... [dependency]ライブラリの依存関係:[dependency] [dependency] ------------- ----- [依存関係]順序付けられたライブラリ:[依存関係] [依存関係] ------------------ [依存関係] API <= 15:クラスパスにannotations.jarを追加します。[echo] ---------- [echo] 'release'を使用したライブラリの構築...

nodeps:

-set-mode-check:

-set-release-mode:

-release-obfuscation-check:[echo] proguard.configはC:\ adt-bundle-windows-x86_64-20130522\sdk/tools/proguard/proguard-Android.txt:proguard-project.txt [echo] Proguard.config有効になっています

-ビルド前:

-check-env:[checkenv] Android SDKToolsリビジョン22.6.2 [checkenv] C:\ adt-bundle-windows-x86_64-20130522\sdkにインストール

-セットアップ:[echo]プロジェクト名:facebook [gettype]プロジェクトタイプ:Androidライブラリ

-build-setup:[getbuildtools]最新のビルドツールの使用:19.0.3 [echo] facebookのビルドターゲットを解決しています... [gettarget]プロジェクトターゲット:Android 2.3.3 [gettarget] APIレベル:10 [echo] ---------- [echo]必要に応じて出力ディレクトリを作成しています... [mkdir]作成されたディレクトリ:C:\ Users\brian.lee\Desktop\Eclipse Workspace\chumba_connect_trunk_new\facebook -Android-sdk-3.14.1\facebook\bin\rsObj [mkdir]作成されたディレクトリ:C:\ Users\brian.lee\Desktop\Eclipse Workspace\chumba_connect_trunk_new\facebook-Android-sdk-3.14.1\facebook\bin\rsLibs [echo] ---------- [echo] facebookの依存関係を解決しています... [dependency]ライブラリの依存関係:[dependency]ライブラリなし[dependency] [dependency] --------- --------- [依存関係] API <= 15:クラスパスにannotations.jarを追加します。

-code-gen:[mergemanifest]削除されたターゲットファイルが見つかりました[mergemanifest] AndroidManifestファイルを1つにマージします。 [mergemanifest]マニフェストのマージが無効になっています。プロジェクトマニフェストのみを使用します。 [echo] aidlファイルの処理... [aidl]コンパイルするAIDLファイルがありません。 [echo] ---------- [echo] RenderScriptファイルの処理... [echo] ---------- [echo]リソースの処理... [aapt]リソースIDを生成しています。 .. [aapt]無効なリソースディレクトリ名:C:\ Users\brian.lee\Desktop\Eclipse Workspace\chumba_connect_trunk_new\facebook-Android-sdk-3.14.1\facebook\bin\res/crunch

ビルドに失敗しましたC:\ adt-bundle-windows-x86_64-20130522\sdk\tools\ant\build.xml:601:この行の実行中に次のエラーが発生しました:C:\ adt-bundle-windows-x86_64-20130522\sdk\tools\ant\build.xml:653:この行の実行中に次のエラーが発生しました:C:\ adt-bundle-windows-x86_64-20130522\sdk\tools\ant\build.xml:698:nullが返されました:1

合計時間:2秒

私の試みはすべて進展がありませんでした。 なぜこのエラーが発生するのですか?正常にビルドするにはどうすればよいですか?

9
brain56

Eclipseを閉じてから、プロジェクトフォルダーでant cleanを実行します。

31
brain56

私にとって:私は持っていた

config.xmlを間違って編集しました

。編集を元に戻すか、一般的なconfig.xmlを配置して、ビルドされるかどうかを確認してください。

4
ekerner

私にとって、競合するビルドターゲットに問題がありました。ライブラリディレクトリ(appcompat)のproject.propertiesを、以前持っていたAndroid-19ではなく、「target = Android-21」に変更する必要がありました。同様のエラーが発生し、前の回答(ant clean)が機能しない場合は、すべてのビルドターゲットを確認してください。

2
gregko

Java_HOME変数がC:\Program Files\Java\jdk1.7.0_67\のようなパスに正しく設定されていることを確認します。それでもエラーが続く場合は、build.xmlに移動して設定trueを変数fork、または渡された変数${need.javac.fork}に設定します。これにより、forkの値が:

fork = "$ {need.javac.fork}"

2
EliuX

Local.propertiesにSDKへのパスがあることを確認することもできます:sdk.dir=/path/to/adt/sdk

0
R.A. Lucas

問題の原因が開発環境にあるのか、プロジェクトの間違いにあるのかを判断するために、cordovaCLIから新しいプロジェクトを作成することをお勧めします。

  • ターミナルを開く
  • タイプcordova create foo; cd foo;
  • タイプcordova platform add Android
  • タイプcordova build

それは機能しますか?したがって、問題はプロジェクト構成にあります。これは私の間違いでした。アプリケーションにアイコンを追加するために、「foo/plataforms/Android/res/{Android/icon * .png}内にAndroid」というフォルダーを作成しました。

アイコンを追加する正しい方法は、プロジェクトfoo/{res/Android/icon * .png}のルートにフォルダーresを作成することです。

次に、このファイルを次のように構成ファイルに追加します。

<platform name="Android">
              <icon src="res/Android/[email protected]" density="ldpi" />
              <icon src="res/Android/[email protected]" density="mdpi" />
              <icon src="res/Android/[email protected]" density="hdpi" />
              <icon src="res/Android/[email protected]" density="xhdpi" />
     </platform>
0
Lothre1