Eclipse と PhoneGap を使用して Android アプリをビルドしようとしていますが、エラーが発生し続けます
[2013-05-21 17:47:39 - PhoneGapTest] Project has no target set. Edit the project properties to set one.
[2013-05-21 17:47:50 - PhoneGapTest] Parser exception for /PhoneGapTest/AndroidManifest.xml: Premature end of file.
...プロジェクトを開くとき。プロジェクトのプロパティを開いてターゲットを設定しましたが、xml 例外が引き続き発生します。プロジェクトをクリーンアップしてビルドし、Android SDK をアンインストールして再ダウンロードし、ADT を更新しましたが、すべて役に立ちませんでした。は空AndroidManifest.xml
です。エラーコンソールにはこれがあります...
Archive for required library: 'E:/AndroidProjects/workspace/PhoneGapTest/libs/cordova-2.7.0.jar' in project 'PhoneGapTest' cannot be read or is not a valid ZIP file Build Path Problem
ああ、cordova jar
プロジェクトの が完全に空になっていることがわかりました。create
しかし、端末でPhoneGapコマンドを使用してこのプロジェクトを100回再構築しようとしたため、これは毎回発生しているに違いありません。なぜこうなった?
編集 - ダウンロードからコピー アンド ペーストして直接追加してcordova jar
いますが、既存のソースから Android プロジェクトを作成しようとしても何も起こりません。このフォルダーは、パッケージ エクスプローラーにも表示されません。では、PhoneGap コマンド ライン作成ツールが、開くことさえできない空AndroidManifest.xml
と空のプロジェクトを作成するのはなぜですか?cordova jar
編集 - わかりました、問題の少なくとも一部は、環境変数の一部、特にProgram Files
. 私は今、%PROGRAMFILES%
変数でそれを処理しました。また、PhoneGap が生成するディレクトリには、AndroidManifest.xml
4KB の有効なコルドバ jar とファイルがあります。AndroidManifest.xml
これは、PhoneGap create コマンド ライン ツールを使用した後の内容です...
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
package="com.gsu.PhoneGapTest" android:versionName="1.0" android:versionCode="1" android:hardwareAccelerated="true">
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:hardwareAccelerated="true"
android:debuggable="true">
<activity android:name="PhoneGapTest" android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="17"/>
</manifest>
...そして、cordova jar は 251 KB です。ここが奇妙な部分です。PhoneGap ドキュメントで指定されているように、既存のコードを使用して Eclipse で Android プロジェクトを作成した後、AndroidManifest.xml の内容が削除され、0 KB に戻り、生成された .project ファイルも空になります。それだけでなく、まだ同じエラーが発生しています。コンソール上のこれら...
[2013-05-21 18:27:13 - PhoneGapTest] Project has no target set. Edit the project properties to set one.
[2013-05-21 18:27:14 - PhoneGapTest] Parser exception for /PhoneGapTest/AndroidManifest.xml: Premature end of file.
..(AndroidManifest が EMTPY であるため意味があります)、これらはエラー ダイアログに表示されます...
Description Resource Path Location Type
Archive for required library: 'E:/AndroidProjects/workspace/PhoneGapTest/libs/cordova-2.7.0.jar' in project 'PhoneGapTest' cannot be read or is not a valid ZIP file PhoneGapTest Build path Build Path Problem
Parser exception for /PhoneGapTest/AndroidManifest.xml: Premature end of file. PhoneGapTest line 1 Android ADT Problem
The project cannot be built until build path errors are resolved PhoneGapTest Unknown Java Problem
Premature end of file. AndroidManifest.xml /PhoneGapTest line 1 Android XML Format Problem
編集 - わかりました、プロジェクトを作成するための私の正確な順序は、これが役立つ場合は次のとおりです...
commandに移動
phonegap*/lib/android/bin
して実行します./create PhoneGapTest com.gsu.PhoneGapTest PhoneGapTest
。このステップの出力は次のとおりです...新しい Android プロジェクトの作成... テンプレート jar のコピー... js、jar、config.xml ファイルのコピー... cordova コマンド ツールのコピー... AndroidManifest.xml と MainActivity の更新...
Android ADT で Eclipse を起動し、次の場所に移動します。
New > Project > Android > Android Project from Existing Code
手順 1 で PhoneGapTest プロジェクトを作成したワークスペースを参照し、
copy project into workspace
チェックボックスを選択して (これを行わないと、メッセージ ボックスの読み取りが表示されますinvalid project description
)、[完了] をクリックします。これで、PhoneGapTest が Project Explorer に表示され、これらのエラーが表示されます...
[2013-05-22 15:36:10 - PhoneGapTest] プロジェクトにはターゲット セットがありません。プロジェクト プロパティを編集して設定します。[2013-05-22 15:36:31 - PhoneGapTest] /PhoneGapTest/AndroidManifest.xml のパーサー例外: ファイルの終わりが早すぎます。
...だから私はプロジェクトをクリックしてproperties > Android > Project Build Target
選択しますAndroid 4.2.2
(これは唯一の他のオプションですGoogle APIs
)
ここでは、AndroidManifest が空であるため、どうすればよいかわかりません。これが私にとって問題の根本のようです。既存のソースから Android プロジェクトをビルドすると、どういうわけか AndroidManifest.xml が空になります。