【发布时间】:2014-01-09 08:52:12
【问题描述】:
最近,我的应用收到了一些崩溃报告,但该异常:
0 java.lang.StringIndexOutOfBoundsException: length=8; regionStart=0; regionLength=32
1 at java.lang.String.startEndAndLength(String.java:593)
2 at java.lang.String.substring(String.java:1474)
3 at com.google.ads.util.AdUtil.b(SourceFile:447)
4 at com.google.ads.AdRequest.<clinit>(SourceFile:210)
5 at java.lang.Class.classForName(Native Method)
6 at java.lang.Class.forName(Class.java:217)
7 at java.lang.Class.forName(Class.java:172)
8 at com.google.analytics.tracking.android.AdHitIdGenerator.<init>(AdHitIdGenerator.java:17)
9 at com.google.analytics.tracking.android.GoogleAnalytics.<init>(GoogleAnalytics.java:65)
10 at com.google.analytics.tracking.android.GoogleAnalytics.<init>(GoogleAnalytics.java:56)
11 at com.google.analytics.tracking.android.GoogleAnalytics.getInstance(GoogleAnalytics.java:92)
12 at com.buscaalimento.android.proxies.GoogleAnalyticsProxy.<init>(GoogleAnalyticsProxy.java:26)
13 at com.buscaalimento.android.proxies.GoogleAnalyticsProxy.createInstance(GoogleAnalyticsProxy.java:40)
显然,这似乎是 Google Analytics SDK jar 中的一个错误。我已经使用 JD-GUI 工具查看了 jar 中的代码。触发异常的行看起来像:
AdHitIdGenerator.java:
try
{
this.mAdMobSdkInstalled = (Class.forName("com.google.ads.AdRequest") != null);
} catch (ClassNotFoundException e) {
this.mAdMobSdkInstalled = false;
}
调用 GoogleAnalytics 类的代码(我的代码)是这样的:
public GoogleAnalyticsProxy(Context context) {
GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(context);
if (DietaeSaudeApplication.isDebugging() || FORCE_DEBUG) {
MvLog.d(this, "Running in debug mode!!");
mTracker = gaInstance.getTracker(DEBUG_TRACKING_ID);
gaInstance.setDebug(true);
} else {
MvLog.d(this, "Running in release mode!!");
mTracker = gaInstance.getTracker(RELEASE_TRACKING_ID);
gaInstance.setDebug(false);
}
GAServiceManager.getInstance().setDispatchPeriod(30); //dispatch a cada 30 segundos
}
异常发生在这一行:
GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(context);
此代码在 Application 类中调用,我在其中创建应用程序的单例。 我真的不知道这个错误。有人通过这个问题吗?
【问题讨论】:
-
StringIndexOutOfBoundsException 在哪里?
-
我编辑了问题,现在使用 StringIndexOutOfBoundsException 堆栈跟踪
标签: java android google-analytics