0

私は開発に慣れていないので、正しく行っているかどうかわかりません。市場からアプリをダウンロードしたばかりで、画面の高さ (ldpi 240x320) に適合しません... 下部のいくつかのボタンが適合しません。表示されません。だから私はいくつかの情報をグーグルで検索し、すべてを試しました...ここにlayout/Main.xmlがあります

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
    <LinearLayout android:orientation="vertical" android:id="@id/LLImage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:minHeight="100.0dip"
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
        <RelativeLayout android:id="@id/drag_layer" android:layout_width="fill_parent" android:layout_height="370.0dip" android:adjustViewBounds="true" android:minHeight="100.0dip">
            <ImageView android:id="@id/imageViewContainer" android:layout_width="fill_parent" android:layout_height="370.0dip" android:src="@drawable/backgsammi" android:scaleType="matrix" android:adjustViewBounds="true" android:minHeight="100.0dip" />
            <ImageView android:id="@id/imageWatermark" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/watermark" android:layout_alignParentRight="true" />
        </RelativeLayout>
    </LinearLayout>
    <LinearLayout android:orientation="vertical" android:id="@id/mainLLauout" android:layout_width="fill_parent" android:layout_height="fill_parent"
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
        <LinearLayout android:gravity="center_horizontal" android:orientation="horizontal" android:background="@drawable/background" android:layout_width="fill_parent" android:layout_height="50.0dip"
          xmlns:android="http://schemas.android.com/apk/res/android">
            <ImageButton android:padding="0.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/open" android:text="Select Picture" android:onClick="openGallery" />
            <ImageButton android:padding="0.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/cat" android:text="Choose Cat" android:onClick="chooseCat" />
            <ImageButton android:id="@id/btnFlip" android:padding="0.0px" android:longClickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/rotate" android:onClick="rotateImage" />
            <ImageButton android:padding="0.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/eraser" android:onClick="eraseImage" />
            <ImageButton android:id="@id/btnSave" android:padding="0.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/save" android:text="Save" android:onClick="saveToGallery" />
            <ImageButton android:padding="0.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3.0dip" android:src="@drawable/help" android:text="Save" android:onClick="openHelp" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

「android:layout_height="370.0dip"」が原因だと思います-小さくする必要があります。しかし、Eclipseで「360」または「fill_parent」に変更し、apkに署名し、電話にインストールしてアプリを開こうとすると、クラッシュします。私は何かを逃していますか?アプリを携帯電話の画面に合わせようとしているだけです

下手な英語とそのばかげた質問でごめんなさい

    05-16 18:21:30.796: W/dalvikvm(11715): threadid=1: thread exiting with uncaught exception (group=0x40018560)
05-16 18:21:31.306: E/AndroidRuntime(11715): FATAL EXCEPTION: main
05-16 18:21:31.306: E/AndroidRuntime(11715): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.addacat.addacat/com.addacat.addacat.AddaCatActivity}: java.lang.ClassNotFoundException: com.addacat.addacat.AddaCatActivity in loader dalvik.system.PathClassLoader[/data/app/com.addacat.addacat-2.apk]
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1680)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.ActivityThread.access$1500(ActivityThread.java:123)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.os.Looper.loop(Looper.java:130)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.ActivityThread.main(ActivityThread.java:3835)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at java.lang.reflect.Method.invokeNative(Native Method)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at java.lang.reflect.Method.invoke(Method.java:507)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at dalvik.system.NativeStart.main(Native Method)
05-16 18:21:31.306: E/AndroidRuntime(11715): Caused by: java.lang.ClassNotFoundException: com.addacat.addacat.AddaCatActivity in loader dalvik.system.PathClassLoader[/data/app/com.addacat.addacat-2.apk]
05-16 18:21:31.306: E/AndroidRuntime(11715):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-16 18:21:31.306: E/AndroidRuntime(11715):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672)
05-16 18:21:31.306: E/AndroidRuntime(11715):    ... 11 more

a

package com.addacat.addacat;

import android.app.Activity;
import android.os.Bundle;

public class AddaCatActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // TODO Auto-generated method stub
    }

}

それはすべてAddaCatActivity.javaにあります

4

2 に答える 2

0

画像の代わりに20pxx20pxの画像を使用して、ダミーアプリでレイアウトをテストしました。これらの高さを370dipからfill_parentに変更しても、クラッシュしません。

Eclipseに接続している間は、エミュレーターでアプリを実行するか、電話からアプリを実行する必要があります。LogCatを表示できる必要があります。それはおそらくあなたに原因が何であるかについての良い考えを与えるでしょう。


編集:

アプリのクラッシュの問題を修正したので、このページをご覧ください。レイアウトを作成する方法の例をいくつか示します。

今、あなたは持っています:

<LinearLayout>
  <LinearLayout>  // Unused
    <RelativeLayout>
      <ImageView />
      <ImageView />
    </RelativeLayout>
  </LinearLayout>

  <LinearLayout>  // Unused
    <LinearLayout>
      <ImageButton />
      <ImageButton />
      <ImageButton />
      <ImageButton />
      <ImageButton />
      <ImageButton />
    </LinearLayout>
  </LinearLayout>
</LinearLayout>

この時点で、LinearLayoutブロックの少なくとも2つは未使用のように見えます。これがあなたが望んでいたと私が思うことをするレイアウトです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" >

  <RelativeLayout 
    android:id="@+id/drag_layer"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:adjustViewBounds="true"
    android:minHeight="100.0dip" >

    <ImageView
      android:id="@+id/imageViewContainer"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:src="@drawable/backgsammi"
      android:scaleType="fitCenter"
      android:adjustViewBounds="true" />

    <ImageView
      android:id="@+id/imageWatermark"
      android:visibility="invisible"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/watermark"
      android:layout_alignParentRight="true" />

  </RelativeLayout>

  <LinearLayout
    android:orientation="horizontal"
    android:id="@+id/mainLLauout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0" >

    <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:src="@drawable/open" />

    <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:src="@drawable/cat" />

    <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:src="@drawable/rotate" />

    <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:src="@drawable/eraser" />

    <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:src="@drawable/save" />

    <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:src="@drawable/help" />

  </LinearLayout>
</LinearLayout>
于 2012-05-16T21:05:18.390 に答える
0

ピクセル サイズについて: 1dp は mdpi でのみ 1px に相当します。ldpi では、1dp=(1+1/3)px です。これは、 mdpi が 160dpi であり、 ldpi が 120dpi であるためです。

これは、画面が 240x320 で、"layout" フォルダー (具体的に書かれていない場合は mdpi 用) 内で dp の寸法を使用する場合、370dp ~493 ピクセルであることを意味します。画面の幅または高さを超えています。

詳細については、これをお読みください: http://developer.android.com/guide/practices/screens_support.html

エラー自体について:名前を変更したか、別の場所に配置したために、アプリが開始したいアクティビティを見つけられないようです。

アクティビティが正しいパスでマニフェストにあることを確認する必要があります。パスが問題ないことを完全に確認するには、マニフェストに "." で始まるのではなく、アクティビティへのフル パスを入力します。そしてアクティビティの名前。例えば:

<activity android:name="com.my_awesome_app.MyAwesomeActivity" ...
于 2012-05-16T22:03:19.040 に答える