我的 Unity 应用程序出现问题,Android 构建在运行 Android 4.3 的设备上启动时崩溃 该应用程序加载了我编写的 native 插件,用于在应用程序暂停时在后台播放音乐。它使用的是 Android MediaBrowser API,因此我使用的是“Compat”版本,因此继续支持以前版本的 Android。
06-07 09:59:37.000: E/AndroidRuntime(1748): FATAL EXCEPTION: main
06-07 09:59:37.000: E/AndroidRuntime(1748): java.lang.Error: FATAL EXCEPTION [main]
06-07 09:59:37.000: E/AndroidRuntime(1748): Unity version : 5.6.1f1
06-07 09:59:37.000: E/AndroidRuntime(1748): Device model : samsung GT-I9300
06-07 09:59:37.000: E/AndroidRuntime(1748): Device fingerprint: samsung/m0xx/m0:4.3/JSS15J/I9300XXUGMK6:user/release-keys
06-07 09:59:37.000: E/AndroidRuntime(1748): Caused by: java.lang.RuntimeException: Unable to create service com.help.stressfree.mediabrowser.MusicService: java.lang.IllegalArgumentException: MediaButtonReceiver component may not be null.
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2697)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.app.ActivityThread.access$1700(ActivityThread.java:159)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1404)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.os.Handler.dispatchMessage(Handler.java:99)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.os.Looper.loop(Looper.java:176)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.app.ActivityThread.main(ActivityThread.java:5419)
06-07 09:59:37.000: E/AndroidRuntime(1748): at java.lang.reflect.Method.invokeNative(Native Method)
06-07 09:59:37.000: E/AndroidRuntime(1748): at java.lang.reflect.Method.invoke(Method.java:525)
06-07 09:59:37.000: E/AndroidRuntime(1748): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
06-07 09:59:37.000: E/AndroidRuntime(1748): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
06-07 09:59:37.000: E/AndroidRuntime(1748): at dalvik.system.NativeStart.main(Native Method)
06-07 09:59:37.000: E/AndroidRuntime(1748): Caused by: java.lang.IllegalArgumentException: MediaButtonReceiver component may not be null.
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplBase.<init>(MediaSessionCompat.java:1054)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.support.v4.media.session.MediaSessionCompat.<init>(MediaSessionCompat.java:176)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.support.v4.media.session.MediaSessionCompat.<init>(MediaSessionCompat.java:118)
06-07 09:59:37.000: E/AndroidRuntime(1748): at com.help.stressfree.mediabrowser.MusicService.onCreate(MusicService.java:169)
06-07 09:59:37.000: E/AndroidRuntime(1748): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2687)
06-07 09:59:37.000: E/AndroidRuntime(1748): ... 10 more
我覆盖的 Unity Activity 在 onCreate 中有这个
protected void onCreate(Bundle savedInstanceState) {
// call UnityPlayerActivity.onCreate()
super.onCreate(savedInstanceState);
Instance = this;
LogHelper.d(TAG, "ThriveUnityPlayerActivity.onCreate");
//Intent intent = new Intent(this, MusicPlayerActivity.class);
//startActivity(intent);
Intent intent = new Intent(this, MusicService.class);
startService(intent);
}
我的 MusicService 类有以下 onCreate 函数
@Override
public void onCreate() {
super.onCreate();
LogHelper.d(TAG, "onCreate");
//mPlayingQueue = new ArrayList<>();
//mMusicProvider = new MusicProvider();
//mPackageValidator = new PackageValidator(this);
mMyServiceHandler = new Handler()
{
//here we will receive messages from activity(using sendMessage() from activity)
public void handleMessage(Message msg)
{
LogHelper.i(TAG,"handleMessage(Message msg)" );
switch(msg.what)
{
case 0:
PlayTrackByName((String) msg.obj);
break;
default:
break;
}
}
};
// Start a new MediaSession
mSession = new MediaSessionCompat(this, "MusicService");
setSessionToken(mSession.getSessionToken());
mSession.setCallback(new MediaSessionCallback());
mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS |
MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
mPlayback = new Playback(this/*, mMusicProvider*/);
mPlayback.setState(PlaybackStateCompat.STATE_NONE);
mPlayback.setCallback(this);
mPlayback.start();
Context context = getApplicationContext();
Intent intent = new Intent(context, MusicPlayerActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
mSession.setSessionActivity(pi);
Bundle extras = new Bundle();
//CarHelper.setSlotReservationFlags(extras, true, true, true);
mSession.setExtras(extras);
updatePlaybackState(null);
mMediaNotificationManager = new MediaNotificationManager(this);
}
有谁知道崩溃意味着什么以及我将如何修复它?
最佳答案
尝试在控制媒体的 Activity 下的 list 中添加一个媒体按钮接收器我在运行 4.4 时遇到过这种情况,但在更高版本上没有。
<receiver android:name="android.support.v4.media.session.MediaButtonReceiver" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
然后阅读; Media Button Receiver
关于java - Android 启动时崩溃 - MediaButtonReceiver 可能不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408617/
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame