Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio和gradle版本升级后奇怪的布局膨胀崩溃_Java_Android_Gradle_Android Gradle Plugin_Android Studio 3.0 - Fatal编程技术网

Java Android Studio和gradle版本升级后奇怪的布局膨胀崩溃

Java Android Studio和gradle版本升级后奇怪的布局膨胀崩溃,java,android,gradle,android-gradle-plugin,android-studio-3.0,Java,Android,Gradle,Android Gradle Plugin,Android Studio 3.0,我最近升级了我的Android Studio和Gradle版本(具体版本和上下文见下文)。升级后,应用程序立即开始崩溃(100%的时间),同时尝试使用以下根本原因扩大布局: Caused by: java.lang.NumberFormatException: For input string: "3.5" at java.lang.Integer.parseInt(Integer.java:608) at com.android.internal.util.XmlUtils.

我最近升级了我的Android Studio和Gradle版本(具体版本和上下文见下文)。升级后,应用程序立即开始崩溃(100%的时间),同时尝试使用以下根本原因扩大布局:

 Caused by: java.lang.NumberFormatException: For input string: "3.5"
    at java.lang.Integer.parseInt(Integer.java:608)
    at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:133)
    at android.content.res.TypedArray.getInt(TypedArray.java:375)
    at com.nirhart.parallaxscroll.views.ParallaxScrollView.init(ParallaxScrollView.java:45)
    at com.nirhart.parallaxscroll.views.ParallaxScrollView.<init>(ParallaxScrollView.java:28)
    at net.chinookbook.android.widget.CBParallaxScrollView.<init>(CBParallaxScrollView.java:19)
ParallaxScrollView.init()方法如下:

protected void init(Context context, AttributeSet attrs) {
    TypedArray typeArray = context.obtainStyledAttributes(attrs, R.styleable.ParallaxScroll);
    this.parallaxFactor = typeArray.getFloat(R.styleable.ParallaxScroll_parallax_factor, DEFAULT_PARALLAX_FACTOR);
    this.alphaFactor = typeArray.getFloat(R.styleable.ParallaxScroll_alpha_factor, DEFAULT_ALPHA_FACTOR);
    this.innerParallaxFactor = typeArray.getFloat(R.styleable.ParallaxScroll_inner_parallax_factor, DEFAULT_INNER_PARALLAX_FACTOR);
    this.numOfParallaxViews = typeArray.getInt(R.styleable.ParallaxScroll_parallax_views_num, DEFAULT_PARALLAX_VIEWS);
    typeArray.recycle();
}
现在,对于调试代码时观察到的奇怪部分:在第行停止调试器:

typeArray.getFloat(R.styleable.ParallaxScroll_parallax_factor, DEFAULT_PARALLAX_FACTOR);
我可以看到该方法即将被这样调用(这是调试器计算的结果)-这看起来是正确的:typeArray.getFloat(3,1.9F)。但后来我介入了这个方法

public float getFloat(@StyleableRes int index, float defValue)
public int getInt(@StyleableRes int index, int defValue)
令我惊讶的是,index=0defValue=1.9。应用程序不会在此崩溃,它会在以下行崩溃:

typeArray.getInt(R.styleable.ParallaxScroll_parallax_views_num, DEFAULT_PARALLAX_VIEWS)
应该使用typeArray.getInt(4,1)调用它,但是当我在方法中单步执行时

public float getFloat(@StyleableRes int index, float defValue)
public int getInt(@StyleableRes int index, int defValue)
同样,令我惊讶的是,参数值是index=3defValue=1。这一次,应用程序将崩溃,因为索引为3的可设置样式的资源是视差因子,定义为3.5,不能作为int读取

所以,我的问题是,一个方法如何看起来像是用一些(主要)值调用,然后实际用其他值调用。我错过了什么注意:视差CrollView是从外部库导入的

=============================================================
环境:

Android Studio:3.1.2
渐变:3.1.2(从2.3.3升级)
渐变包装器:4.4(从3.3升级)

编译DKversion27
buildToolsVersion27.0.3
minSdkVersion16
targetSdkVersion27
多索引已启用true
com.android.support:multidex:1.0.3(从1.0.1升级)
nirhart:parallaxscroll:1.0

public int getInt(@StyleableRes int index, int defValue)