ActivityManager: 启动活动 java.lang.IllegalArgumentException: val.length > 91 时引发的异常
启动应用程序的 MainActivity 时,它会立即崩溃。当我查找adb日志时,我只能找到这个,
Exception thrown when launching activities in ProcessRecord
java.lang.IllegalArgumentException: val.length > 91
at SystemProperties.set
当我查找Android的源代码时,我发现这可能是Android源代码系统属性问题的根源.java。它包含最大值限制 91。
public static final int PROP_VALUE_MAX = 91;
public static String get(String key) {
if (key.length() > PROP_NAME_MAX) {
throw new IllegalArgumentException("key.length > " + PROP_NAME_MAX);
}
return native_get(key);
}
当我给它一个猜测时,我发现,我的应用程序的包名称是108个字符长。当我将应用程序的包名称更改为60个字符时,它可以正常工作,没有任何问题。
可能是什么问题?这只发生在华硕Zenfone 2(Lolipop 5.0)型号上。
任何其他设备都没有问题。由于这个问题,我们收到了很多负面评价。
我们的应用程序已经在Play商店中下载了15K。因此,更改应用程序的包名称对我来说不是一个选项。请帮忙
更新
更准确地说,有
我们测试过的所有Android手机都没有问题,除了华硕Zenfone系列
正如@ViswanathLekshmanan在注释中提到的,我将MainAcitivity.java文件的位置更改为较低的路径。
即,原始的完整软件包名称是:- “com.fourbigbrothers.malayalam_troll_greetings_maker_edit_movie_images_font_seasonal_photo_comments.activities.MainActivity”
我把它改成了:- “com.fourbigbrothers.mtm.activities.MainActivity”
仍然无法正常工作。我已经在创建MainActivity上放置了一些日志,但是代码执行根本没有到达那里。所以我不知道在哪里放置一个尝试/捕获块,如一些答案中提到的。
使用Android ndk会有什么解决方案吗?抱歉,如果这是一个愚蠢的问题,我完全迷失了。
这是清单的相关部分
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fourbigbrothers.malayalam_troll_greetings_maker_edit_movie_images_font_seasonal_photo_comments" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name="com.fourbigbrothers.boilerplate.base.FbbApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.FbbApp" >
<activity
android:name="com.fourbigbrothers.malayalam_troll_greetings_maker_edit_movie_images_font_seasonal_photo_comments.activities.MainActivity"
android:label="@string/launcherActivityName"
android:screenOrientation="portrait"
android:launchMode="singleTop"
android:theme="@style/MainActivityTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
</application>