0

SimpleIRExample をライブラリとしてプロジェクトに統合しようとしています。投稿の目的で、プロジェクトと同じエラーをスローする最小限の例を書きました。

親プロジェクト 'TestIR' は次のようにする必要があります (これは MainActivity です)。

package com.example.testir;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import es.wul4.ar.WikitudeAR;

public class MainActivity extends Activity {

private Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

context = this;

Button button1 = (Button) findViewById(R.id.button1);

button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent(context, WikitudeAR.class); // HERE IS THE CALL TO WIKITUDE SIMPLEIREXAMPLE
context.startActivity(intent);
}
});
}
}

親プロジェクトには次のマニフェストがあります。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testir"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.INTERNET" />
<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_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.testir.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="es.wul4.ar.WikitudeAR"
            android:screenOrientation="landscape"
  android:configChanges="screenSize|orientation">
        </activity>
    </application>

</manifest>

そして、ここで問題が発生します。親プロジェクトにライブラリ プロジェクトとして SimpleIRExample を追加します。

http://www.nacho-alvarez.es/descargas/simpleirexample_as_library.png

SimpleIRExample のライブラリ ツリーは次のとおりです。

.
├── armeabi
│   ├── libExtensionVuforia.so
│   └── libQCAR.so
├── armeabi-v7a
│   ├── libExtensionVuforia.so
│   └── libQCAR.so
├── javadoc.jar
├── QCAR.jar
└── wikitudesdk.jar

SimpleIRExample マニフェストのセクション:

        <activity
            android:name=".WikitudeAR"
            android:label="@string/app_name"
            android:screenOrientation="landscape"
android:configChanges="screenSize|orientation"
            android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

構文エラーもコンパイル エラーもないので、プログラムを実行します。testIR プロジェクトのアクティビティのシンプルなボタンが表示され、それを押すと次のエラーが繰り返し表示されます。

D/dalvikvm(27351): ライブラリ /data/data/com.example.testir/libarchitect.so 0x421a9cb0 を読み込もうとしています D/dalvikvm(27351): 共有ライブラリ /data/data/com.example.testir/libarchitect.so を追加しました0x421a9cb0 A/libc(27351): 0x00000010 (コード = 1) の致命的なシグナル 11 (SIGSEGV)、スレッド 27351 (.example.testir)

スタンドアロン プロジェクトの非ライブラリにメイン アクティビティを作成し、WikitudeAR アクティビティを呼び出すと、正常に動作します。ただし、プロジェクトが複数のライブラリを使用している場合、上記と同じエラーが発生します (Fatal signal 11 SIGSEV)。SimpleIRExample を何らかの方法でライブラリまたは呼び出しとして使用することは興味深いことです。なぜなら、複数のライブラリまたはモジュールを呼び出して優れた多様なアプリを作成するアプリ コンテナーを作成したからです。

誰でも何か考えがありますか?

前もって感謝します!

4

1 に答える 1

0

昨日 (06/18/13) にリリースされた新しい SDK バージョン 3.0 のインストールで解決しました。Android 4.2.2 を搭載した Nexus 4 のライブラリとして完全に動作するようになり、このバージョンで利用できる非常に優れたサンプルにいくつかの変更が加えられました。

http://developer.wikitude.com/download

于 2013-06-19T15:00:24.147 に答える