コンソールでmake/antを使用して、Windows上にAndroid port of Hedgewarsをビルドしようとしています。試行錯誤の末、ビルドプロセス全体を完了することができましたが、ビルドされたアプリケーションは起動しません。 logcatは、Android Support libraryのクラスが欠落している理由を明らかにします。なぜAndroidサポートライブラリが自分の.apkに追加されないのですか?
しかし、ライブラリ(android-support-v13.jar)はアンドロイドプロジェクトの "libs"ディレクトリにあります。ビルド中に明示的に使用されているため、Javaソースをコンパイルするときにエラーが発生するため、エラーが発生します。私はclasses.dexファイルをチェックしました。そこでは、ライブラリクラスを(私が理解する限り)追加する必要があり、そこには存在しません。
サポートライブラリが.apkに含まれていない理由は何ですか? libs/armeabiの他の(ネイティブ)ライブラリも含まれています。ビルドは、基本的に変数sdk.dir
とtarget
(android-13)を設定し、次に${sdk.dir}/tools/ant/build.xml
をインポートするbuild.xmlを使用してantを使用して実行されます。
明確にするには、私はエクリプスを使用して作業ビルドを取得する方法を知っています。問題は、通常のantビルドがライブラリの追加に失敗し、その問題を修正する方法です。ここで
は(コメントなし)プロジェクトディレクトリ内のbuild.xmlです:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MainActivity" default="help">
<loadproperties srcFile="local.properties" />
<property file="ant.properties" />
<loadproperties srcFile="project.properties" />
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
unless="sdk.dir"
/>
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>
local.propertiesがsdk.dirを定義し、project.propertiesは、ターゲットを定義し、ant.properties空です。
更新:もちろん、最新のバージョン(ndk8、sdk19)をすべて更新して、Hedgewarsリポジトリから適切な対策を講じています。残念なことに、正確に何が違いを生み出したのかは分かりません。私は、賞金のための最善の候補者がNickTであることを意味すると思うが、彼はそれを適切な答えにしなかった。コメントの提案。
どのデバイスをテストしていますか? APIが13未満のデバイスでテストしている場合、これらのクラッシュが発生します。代わりにサポートライブラリv4を使用してみてください – dymmeh
私がテストしているデバイスは、Android 3.2のSamsung Galaxy Tab 10.1Nですので、APIレベル13にする必要があります。 – Medo42
ああ、無視してください:) – dymmeh