5

私はステップカウンターを作成するためにこのチュートリアルに従っており、Androidプロジェクトとしてうまく機能しますが、Androidプロジェクトをライブラリにしてunity3dで使用したい場合、クラッシュしてエラーが発生しますclass not found: exception 私のユニティコードは次のとおりです:

void Start () 
{
    #if UNITY_ANDROID
    AndroidJNI.AttachCurrentThread();
    androidClass = new AndroidJavaClass("com.test.testapp.MainActivity");
    #endif
}
#if UNITY_ANDROID
public void checkMyIntOnJava(string message){
    if (message == "READY") {
        int myInt = androidClass.CallStatic<int>("getMyInt");
        guiText.text = "My Int: " + myInt;
    }
}

私のAndroidコードは次のとおりです。

public class MainActivity extends UnityPlayerActivity
implements OnDataPointListener, GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener
{
public static void callbackToUnityMethod(int num, String gameObject,String methodName){
    _myInt = num;
    Log.e("GoogleFit", "in callbackToUnityMethod");
   UnityPlayer.UnitySendMessage(gameObject, methodName, "READY");
}
}

Android jar を作成したら、unity3d の plugin フォルダーに保管します。何か見逃しましたか?

私の Android マニフェスト ファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.xxx.testapp" android:versionCode="1" 
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="9" />
<application android:label="@string/app_name">
    <activity android:name="com.xxx.testapp.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="com.xxx.testapp.UnityPlayerActivity"  
    android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" 
    android:label="@string/app_name" android:launchMode="singleTask" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
</application>
</manifest>
4

1 に答える 1

0

試してみたいことはこの2つです。

AndroidManifest.xml最初に、パッケージのスコープがプロパティで一致するように、次の行を変更しandroid:nameます。

<activity android:name="com.xxx.testapp.MainActivity"
         android:label="@string/app_name">

<activity android:name="com.test.testapp.MainActivity"
         android:label="@string/app_name">

もう 1 つの潜在的な問題は、親クラスとインターフェイスに抽象メソッドの具体的な実装がないため、クラスがコンパイルされていないことです。それを修正するには、これらの実装をに追加しますMainActivity

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

@Override
public void onConnected(Bundle bundle) {

}

@Override
public void onConnectionSuspended(int i) {

}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {

}

@Override
public void onDataPoint(DataPoint dataPoint) {

}
于 2016-06-29T14:02:42.380 に答える