【发布时间】:2020-05-25 09:54:52
【问题描述】:
我遇到了一个问题。这个QUESTION 已经有人问过了。但是这个问题没有答案。
根据这个问题的标题。如何在原生 android 项目中集成多个统一模块或库。我遵循了很多程序。但我没有得到这个问题的解决方案。根据UNITY TECHNOLOGY 指令,我必须将统一库集成到我的项目中。我已经为两个 unityLibrary 完成了这个。对于第二个库,我必须更改包名和类名。并让它发挥作用。完成所有这些更改后,我的项目构建成功,并且编译没有任何错误。当我点击加载第一个游戏时,它正在加载第一个游戏。但是当我点击加载第二个游戏时,它也只加载了第一个游戏。
下面是我的android studio的截图。
我正在与您分享有关此的更多描述。
*app module内部有2个Activity,分别命名为MainActivity和GameHolderActivity。下面是MainActivity.java的代码。
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn1Click).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, GameHolderActivity.class);
intent.putExtra("game", 1);
startActivity(intent);
}
});
findViewById(R.id.btn2Click).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, GameHolderActivity.class);
intent.putExtra("game", 2);
startActivity(intent);
}
});
}
}
在那之后,现在我要提到GameHolderActivity.java 的代码。
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
//FIRST GAME ACTIVITY
import com.unity3d.player.UnityPlayerActivity;
//SECOND GAME ACTIVITY
import com.game.player.GamePlayerActivity;
public class GameHolderActivity extends Activity {
private String TAG = "GAME_HOLDER_ACTIVITY";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first_game);
if (getIntent().hasExtra("game") && getIntent().getIntExtra("game", 0) == 1) {
Log.d(TAG, "FIRST_GAME");
Intent intent = new Intent(GameHolderActivity.this, UnityPlayerActivity.class);
startActivity(intent);
} else {
Log.d(TAG, "SECOND_GAME");
Intent intent = new Intent(GameHolderActivity.this, GamePlayerActivity.class);
startActivity(intent);
}
}
}
在整个过程中,我只更改了一个库包名称。这样我就可以识别我的第二个游戏活动。
我在build.gradle(Module:app) 内android {} 内又添加了一件东西。
packagingOptions {
pickFirst '**/*.so'
}
我已经为此尝试了以下教程,但在多个游戏中都没有得到任何积极的回应。
所以请提供解决方案,以便我可以在我的原生 android 应用程序上打开我的两个 Unity 游戏。我将非常感谢您的帮助。
【问题讨论】:
-
您找到解决方案了吗?请分享
-
@KenZira 请阅读答案。我已经发布了。